<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>CUTLASS: mma_tensor_op_tile_iterator_sm70.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="cutlass-logo-small.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">CUTLASS
   </div>
   <div id="projectbrief">CUDA Templates for Linear Algebra Subroutines and Solvers</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_6baf2bb612a2f0daa69af3101ede80a1.html">cutlass</a></li><li class="navelem"><a class="el" href="dir_9aa36bd9cfad59a1f88859a38871c977.html">gemm</a></li><li class="navelem"><a class="el" href="dir_5182a53bfc5d70ef5651acc985c58dc3.html">warp</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">mma_tensor_op_tile_iterator_sm70.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="mma__tensor__op__tile__iterator__sm70_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/***************************************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2017-2019, NVIDIA CORPORATION.  All rights reserved.</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without modification, are permitted</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * provided that the following conditions are met:</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> *     * Redistributions of source code must retain the above copyright notice, this list of</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *       conditions and the following disclaimer.</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> *     * Redistributions in binary form must reproduce the above copyright notice, this list of</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *       conditions and the following disclaimer in the documentation and/or other materials</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *       provided with the distribution.</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *     * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *       to endorse or promote products derived from this software without specific prior written</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *       permission.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS IS&quot; AND ANY EXPRESS OR</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> **************************************************************************************************/</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="cutlass_8h.html">cutlass/cutlass.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="array_8h.html">cutlass/array.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="numeric__types_8h.html">cutlass/numeric_types.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="tensor__ref_8h.html">cutlass/tensor_ref.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="matrix__shape_8h.html">cutlass/matrix_shape.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="include_2cutlass_2gemm_2gemm_8h.html">cutlass/gemm/gemm.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="layout_2matrix_8h.html">cutlass/layout/matrix.h</a>&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="pitch__linear_8h.html">cutlass/layout/pitch_linear.h</a>&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="tensor__op__multiplicand__sm70_8h.html">cutlass/layout/tensor_op_multiplicand_sm70.h</a>&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="platform_8h.html">cutlass/platform/platform.h</a>&quot;</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacecutlass.html">cutlass</a> {</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="keyword">namespace </span>gemm {</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="keyword">namespace </span>warp {</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="keyword">template</span> &lt;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keyword">typename</span> Shape_,</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <a class="code" href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6">Operand</a> <a class="code" href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6">Operand</a>,</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <span class="keyword">typename</span> Element_,</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <span class="keyword">typename</span> Layout_,</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keyword">typename</span> InstructionShape_,</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="keywordtype">int</span> OpDelta_,</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keywordtype">int</span> Threads&gt;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">   70</a></span>&#160;<span class="keyword">class </span><a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a>;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="keyword">template</span> &lt;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <span class="keyword">typename</span> Shape_,</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    <span class="keyword">typename</span> Element_,</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="keyword">typename</span> InstructionShape_,</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="keywordtype">int</span> OpDelta_&gt;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html">   89</a></span>&#160;<span class="keyword">class </span><a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a>&lt;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    Shape_, Operand::<a class="code" href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6a30f767aa191cd5d261e767fd78393607">kA</a>, Element_,</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <a class="code" href="structcutlass_1_1layout_1_1VoltaTensorOpMultiplicandCongruous.html">cutlass::layout::VoltaTensorOpMultiplicandCongruous</a>&lt;</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        sizeof_bits&lt;Element_&gt;::value&gt;,</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    InstructionShape_, OpDelta_, 32&gt; {</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a7372d844a53e25b82a746ea9ff8510ed">   97</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a7372d844a53e25b82a746ea9ff8510ed">Shape</a> = Shape_;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a869e330893310d65941af384e1dabdf2">  100</a></span>&#160;  <span class="keyword">static</span> Operand <span class="keyword">const</span> kOperand = <a class="code" href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6a30f767aa191cd5d261e767fd78393607">Operand::kA</a>;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#aa1e94b945acaaea52c9bbf29bfbed63e">  103</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#aa1e94b945acaaea52c9bbf29bfbed63e">Element</a> = Element_;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ae9ca07324bb631109c44088d039e28eb">  106</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="structcutlass_1_1layout_1_1VoltaTensorOpMultiplicandCongruous.html">Layout</a> = <a class="code" href="structcutlass_1_1layout_1_1VoltaTensorOpMultiplicandCongruous.html">cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt;sizeof_bits&lt;Element_&gt;::value</a>&gt;;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#abc3ae2fe83b096488e798d37327ff3c9">  109</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#abc3ae2fe83b096488e798d37327ff3c9">InstructionShape</a> = InstructionShape_;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a76eaaf0d567aed0ddf1de9eaf7ab059d">  112</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kOpDelta = OpDelta_;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ad1dee4fcf12a8a7549583e9503d7dd66">  115</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kThreads = 32;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#af6c3e31a0b888133352955ef5700ec5f">  118</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef</a> = <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef&lt;Element, Layout&gt;</a>;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ad07c2e732032e98b818b5c9caac88782">  121</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ad07c2e732032e98b818b5c9caac88782">Index</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#a11ec4b07a2132e647ca2ebe5112ce5ec">TensorRef::Index</a>;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a3d25902aecd1742c8d5bc9229dc80455">  124</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a3d25902aecd1742c8d5bc9229dc80455">LongIndex</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#adeada5e33b231f125a4aaeaf963bd3a3">TensorRef::LongIndex</a>;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a277ded643a7fedaa7cdc17f2e0ed5a5c">  127</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a277ded643a7fedaa7cdc17f2e0ed5a5c">TensorCoord</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#ace218cdb46555a46bd71dbdfc2c317c1">TensorRef::TensorCoord</a>;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Opera33cdf53848564e894d4407637dc86caf.html">  130</a></span>&#160;  <span class="keyword">struct </span>Policy {</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <a class="code" href="platform_8h.html#adde4c9ea91b753491851361a4198c009">static_assert</a>(</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        !(Shape::kContiguous % InstructionShape::kContiguous),</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        <span class="stringliteral">&quot;Shape of warp-level Mma must be divisible by operator shape.&quot;</span>);</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    <span class="comment">// Shape of one individual LDS.128</span></div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <span class="comment">// TODO: 32 and 4 are hardcoded, 32-by-4 is logical shape</span></div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <span class="keyword">using</span> <a class="code" href="structcutlass_1_1layout_1_1PitchLinearShape.html">LdsShape</a> = <a class="code" href="structcutlass_1_1layout_1_1PitchLinearShape.html">layout::PitchLinearShape</a>&lt;</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;      32,</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;      4</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Opera33cdf53848564e894d4407637dc86caf.html#a9824e494b5044736123d3e834ab0ccf6">  140</a></span>&#160;    &gt;;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    <span class="comment">// LdsShapes are arranged in the strided direction in SMEM</span></div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <span class="keyword">using</span> <a class="code" href="structcutlass_1_1layout_1_1PitchLinearShape.html">LdsIterations</a> = <a class="code" href="structcutlass_1_1layout_1_1PitchLinearShape.html">layout::PitchLinearShape</a>&lt;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;      InstructionShape::kStrided / LdsShape::kStrided,</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;      Shape::kContiguous / LdsShape::kContiguous</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Opera33cdf53848564e894d4407637dc86caf.html#a5a872b0e23893fdf63fdac34ef4145a7">  146</a></span>&#160;    &gt;;</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;  };</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;  <a class="code" href="platform_8h.html#adde4c9ea91b753491851361a4198c009">static_assert</a>(kOpDelta == 1,</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="stringliteral">&quot;Alternative arrangements not supported at present.&quot;</span>);</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kPointerCount = 2;</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a> = <a class="code" href="classcutlass_1_1AlignedArray.html">AlignedArray&lt;Element, Layout::kElementsPerAccess&gt;</a>;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;  <span class="comment">//</span></div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;  <span class="comment">// Derived quantities</span></div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;  <span class="comment">//</span></div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a41ea626da30ce2007fe3bfeb299460ca">  168</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a41ea626da30ce2007fe3bfeb299460ca">Fragment</a> = Array&lt;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#aa1e94b945acaaea52c9bbf29bfbed63e">Element</a>, Shape::kCount / kThreads * 2&gt;;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ad07c2e732032e98b818b5c9caac88782">Index</a> stride_;</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;  <a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a> <span class="keyword">const</span> *pointer_[kPointerCount];</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ad07c2e732032e98b818b5c9caac88782">Index</a> byte_offset_;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a499d86e246b80a13ce5e8c3d4ec07980">  185</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a499d86e246b80a13ce5e8c3d4ec07980">MmaVoltaTensorOpMultiplicandTileIterator</a>(): stride_(0), byte_offset_(0) { }</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ac142fe3da9848fa6c477eb87b567e062">  189</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ac142fe3da9848fa6c477eb87b567e062">MmaVoltaTensorOpMultiplicandTileIterator</a>(</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef</a> <span class="keyword">const</span> &amp;ref,</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <span class="keywordtype">int</span> lane_id</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;  ):</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    stride_(ref.stride(0) / <a class="code" href="structcutlass_1_1layout_1_1VoltaTensorOpMultiplicandCongruous.html">Layout</a>::kElementsPerAccess), byte_offset_(0) {</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    <span class="comment">// swizzle patterns for operandA LDS are</span></div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="comment">// 1. (tid[4] &lt;&lt; 3) | (tid[2:0] ^ tid[4])</span></div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    <span class="comment">// 2. (tid[4] &lt;&lt; 3) | (tid[2:0] ^ tid[4] ^ 0b10010)</span></div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    <span class="keywordtype">int</span> vec_row = (lane_id &gt;&gt; 4); <span class="comment">// tid[4]</span></div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <span class="keywordtype">int</span> vec_col = ((lane_id &amp; 4) &gt;&gt; 2); <span class="comment">// tid[2]</span></div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    <a class="code" href="cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4">CUTLASS_PRAGMA_UNROLL</a></div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; kPointerCount; ++i) {</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;      <span class="keywordflow">if</span>(i == 1) {</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        vec_row |= 2;</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;      }</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;      <span class="keywordtype">int</span> access_contiguous_idx = (vec_col &lt;&lt; 2) | ((lane_id &amp; 3) ^ vec_row);</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;      <span class="keywordtype">int</span> access_contiguous = access_contiguous_idx;</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;      <span class="keywordtype">int</span> access_strided = vec_row;</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;      pointer_[i] = <span class="keyword">reinterpret_cast&lt;</span><a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a> <span class="keyword">const </span>*<span class="keyword">&gt;</span>(ref.<a class="code" href="classcutlass_1_1TensorRef.html#ac7db3ca62ab1dfe0d3ea08bcadbc9352">data</a>()) +</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        access_contiguous + access_strided * stride_;</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    }</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;  }</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a7a7cb733f78d2c383825695a93803f50">  219</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a7a7cb733f78d2c383825695a93803f50">add_pointer_offset</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a3d25902aecd1742c8d5bc9229dc80455">LongIndex</a> offset) {</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    byte_offset_ += offset * <span class="keyword">sizeof</span>(Element);</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;  }</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ad26a9261cb7216ab9d1ee2e1cacbe2a7">  228</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ad26a9261cb7216ab9d1ee2e1cacbe2a7">add_tile_offset</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a277ded643a7fedaa7cdc17f2e0ed5a5c">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    <span class="keywordtype">int</span> contiguous_offset = tile_offset.contiguous();</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    <span class="keywordtype">int</span> strided_offset = tile_offset.strided();</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    <span class="comment">// To support 32x32 tile size</span></div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    <span class="keywordflow">if</span> (Shape::kContiguous == Policy::LdsShape::kContiguous) {</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;      <span class="keywordflow">if</span> (contiguous_offset % 2) {</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;        <a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a> <span class="keyword">const</span> *tmp_pointer = pointer_[0];</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;        pointer_[0] = pointer_[1];</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;        pointer_[1] = tmp_pointer;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;      }</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;      contiguous_offset = contiguous_offset / 2;</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    }</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    <span class="keywordtype">int</span> offset = (strided_offset * InstructionShape::kStrided) * stride_ *</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;                     Layout::kElementsPerAccess +</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;                 contiguous_offset * Shape::kContiguous;</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    add_pointer_offset(offset);</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;  }</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a21c2fa0fc65c51bb16fa9f6ddad1eda4">  254</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp; <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a21c2fa0fc65c51bb16fa9f6ddad1eda4">operator++</a>() {</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    byte_offset_ += stride_ * InstructionShape::kStrided * <span class="keyword">sizeof</span>(Element) *</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;                    Layout::kElementsPerAccess;</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;  }</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ad262c03181b674266af1daa43162ef8e">  263</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp; <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ad262c03181b674266af1daa43162ef8e">operator--</a>() {</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    byte_offset_ -= stride_ * InstructionShape::kStrided * <span class="keyword">sizeof</span>(Element) *</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;                    Layout::kElementsPerAccess;</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;  }</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a528adebab8aa3fa3233554782652047e">  272</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp; <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a528adebab8aa3fa3233554782652047e">operator+=</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a277ded643a7fedaa7cdc17f2e0ed5a5c">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;    add_tile_offset(tile_offset);</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;  }</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#aae34807a2f795d57a71a0661182cdb6a">  279</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp; <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#aae34807a2f795d57a71a0661182cdb6a">operator-=</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a277ded643a7fedaa7cdc17f2e0ed5a5c">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;    add_tile_offset(-tile_offset);</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;  }</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a4572c3eeb9bfd02c8033b53bd698991e">  286</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a4572c3eeb9bfd02c8033b53bd698991e">load</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a41ea626da30ce2007fe3bfeb299460ca">Fragment</a> &amp;frag)<span class="keyword"> const </span>{</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    load_with_byte_offset(frag, 0);</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;  }</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#af86e30cc649534cdc5b754d6cb7177f2">  293</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#af86e30cc649534cdc5b754d6cb7177f2">load_with_byte_offset</a>(</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a41ea626da30ce2007fe3bfeb299460ca">Fragment</a> &amp;frag,</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ad07c2e732032e98b818b5c9caac88782">Index</a> byte_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;    <a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a> * fetch_ptr = <span class="keyword">reinterpret_cast&lt;</span><a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a> *<span class="keyword">&gt;</span>(&amp;frag);</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;    <a class="code" href="cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4">CUTLASS_PRAGMA_UNROLL</a></div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> s = 0; s &lt; Policy::LdsIterations::kStrided; ++s) {</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;      <a class="code" href="cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4">CUTLASS_PRAGMA_UNROLL</a></div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;      <span class="keywordflow">for</span> (<span class="keywordtype">int</span> c = 0; c &lt; Policy::LdsIterations::kContiguous; ++c) {</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;        <span class="keywordtype">int</span> access_idx = c + s * Policy::LdsIterations::kContiguous;</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;        <a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a> <span class="keyword">const</span> *source_ptr = pointer_[s &amp; 1] +</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;          Policy::LdsShape::kContiguous * c +</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;          Policy::LdsShape::kStrided * (s / 2) * stride_;</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;        <span class="keywordtype">char</span> <span class="keyword">const</span> *source_byte_ptr = <span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">char</span> <span class="keyword">const </span>*<span class="keyword">&gt;</span>(source_ptr) + byte_offset + byte_offset_;</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;        fetch_ptr[access_idx] = *(<span class="keyword">reinterpret_cast&lt;</span><a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a> const*<span class="keyword">&gt;</span> (source_byte_ptr));</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;      }</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;    }</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;  }</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ae08a89a2167a7c857fe80ea2c856a51c">  321</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ae08a89a2167a7c857fe80ea2c856a51c">load_with_pointer_offset</a>(</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a41ea626da30ce2007fe3bfeb299460ca">Fragment</a> &amp;frag,</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ad07c2e732032e98b818b5c9caac88782">Index</a> pointer_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;    load_with_byte_offset(frag, pointer_offset * <span class="keyword">sizeof</span>(Element));</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;  }</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#af63f1ab82c68bd2eeed4639e3e2b0290">  331</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#af63f1ab82c68bd2eeed4639e3e2b0290">load</a>(</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a41ea626da30ce2007fe3bfeb299460ca">Fragment</a> &amp;frag,</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a277ded643a7fedaa7cdc17f2e0ed5a5c">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;    load_with_byte_offset(frag, tile_offset, 0);</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;  }</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a2869bffb6ec67d650ef03c1c89296d9c">  341</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a2869bffb6ec67d650ef03c1c89296d9c">load</a>(</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a41ea626da30ce2007fe3bfeb299460ca">Fragment</a> &amp;frag,</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a277ded643a7fedaa7cdc17f2e0ed5a5c">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset,</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ad07c2e732032e98b818b5c9caac88782">Index</a> pointer_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    load_with_byte_offset(frag, tile_offset, pointer_offset * <span class="keyword">sizeof</span>(Element));</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;  }</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a8f1c4c6671f1b6a4dce2445338b2dcb7">  353</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a8f1c4c6671f1b6a4dce2445338b2dcb7">load_with_byte_offset</a>(</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a41ea626da30ce2007fe3bfeb299460ca">Fragment</a> &amp;frag,</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a277ded643a7fedaa7cdc17f2e0ed5a5c">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset,</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ad07c2e732032e98b818b5c9caac88782">Index</a> byte_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;    <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ad07c2e732032e98b818b5c9caac88782">Index</a> pointer_offset =</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;        tile_offset.contiguous() * Shape::kContiguous /</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;            Layout::kElementsPerAccess +</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;        tile_offset.strided() * InstructionShape::kStrided * stride_;</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;    byte_offset += <span class="keyword">sizeof</span>(<a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a>) * pointer_offset;</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;    load_with_byte_offset(frag, byte_offset);</div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;  }</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#add5d0fd0276c0770b7e5d9466ed8d71a">  378</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#add5d0fd0276c0770b7e5d9466ed8d71a">set_kgroup_index</a>(<span class="keywordtype">int</span> k_group) {</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;    <span class="comment">// no operation here</span></div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;  }</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;};</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;<span class="keyword">template</span> &lt;</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;    <span class="keyword">typename</span> Shape_,</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;    <span class="keyword">typename</span> Element_,</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;    <span class="keyword">typename</span> InstructionShape_,</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    <span class="keywordtype">int</span> OpDelta_&gt;</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html">  401</a></span>&#160;<span class="keyword">class </span><a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a>&lt;</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;    Shape_, Operand::<a class="code" href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6a3e56c011b37f0bc78fb9eb175c1181c6">kB</a>, Element_,</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;    <a class="code" href="structcutlass_1_1layout_1_1VoltaTensorOpMultiplicandBCongruous.html">cutlass::layout::VoltaTensorOpMultiplicandBCongruous</a>&lt;</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;        sizeof_bits&lt;Element_&gt;::value&gt;,</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    InstructionShape_, OpDelta_, 32&gt; {</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a00851f20451d82ddc6430360cadd650f">  409</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a00851f20451d82ddc6430360cadd650f">Shape</a> = Shape_;</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;</div><div class="line"><a name="l00412"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#aa1e8da62cbb533f6ea848faf0ce95efa">  412</a></span>&#160;  <span class="keyword">static</span> Operand <span class="keyword">const</span> kOperand = <a class="code" href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6a3e56c011b37f0bc78fb9eb175c1181c6">Operand::kB</a>;</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;</div><div class="line"><a name="l00415"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a0d80bdc010e213b48f1580ec08f943e2">  415</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a0d80bdc010e213b48f1580ec08f943e2">Element</a> = Element_;</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a84d8ebb28373aa1d56b6ed9a872a4c39">  418</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="structcutlass_1_1layout_1_1VoltaTensorOpMultiplicandBCongruous.html">Layout</a> = <a class="code" href="structcutlass_1_1layout_1_1VoltaTensorOpMultiplicandBCongruous.html">cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt;sizeof_bits&lt;Element_&gt;::value</a>&gt;;</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a719ef6becc48d7b2f35bffc781bc946f">  421</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a719ef6becc48d7b2f35bffc781bc946f">InstructionShape</a> = InstructionShape_;</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;</div><div class="line"><a name="l00424"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a591c22882c64531853e04e9949a6978e">  424</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kOpDelta = OpDelta_;</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#aa045a737f4dfd8ad8e1bc520df9e9b8b">  427</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kThreads = 32;</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a7175d6119591bd9524a8958f51cbf56a">  430</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef</a> = <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef&lt;Element, Layout&gt;</a>;</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;</div><div class="line"><a name="l00433"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#aac53debde1f27fd38bb9830ea44309ad">  433</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#aac53debde1f27fd38bb9830ea44309ad">Index</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#a11ec4b07a2132e647ca2ebe5112ce5ec">TensorRef::Index</a>;</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a3cb3d779d8063f1f1e9ccb9a2d8ae7bf">  436</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a3cb3d779d8063f1f1e9ccb9a2d8ae7bf">LongIndex</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#adeada5e33b231f125a4aaeaf963bd3a3">TensorRef::LongIndex</a>;</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;</div><div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a7cb7f00d52b9a08c8c36180e1de2ef80">  439</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a7cb7f00d52b9a08c8c36180e1de2ef80">TensorCoord</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#ace218cdb46555a46bd71dbdfc2c317c1">TensorRef::TensorCoord</a>;</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;</div><div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Opera6fa6d2d3725bb3ec613d5c527ea3ffe7.html">  442</a></span>&#160;  <span class="keyword">struct </span>Policy {</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    <a class="code" href="platform_8h.html#adde4c9ea91b753491851361a4198c009">static_assert</a>(</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;        !(Shape::kContiguous % InstructionShape::kContiguous),</div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;        <span class="stringliteral">&quot;Shape of warp-level Mma must be divisible by operator shape.&quot;</span>);</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;    <span class="comment">// Shape of one individual LDS</span></div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;    <span class="comment">// TODO: remove hardcoded 32 and 4</span></div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;    <span class="keyword">using</span> <a class="code" href="structcutlass_1_1layout_1_1PitchLinearShape.html">LdsShape</a> = <a class="code" href="structcutlass_1_1layout_1_1PitchLinearShape.html">layout::PitchLinearShape</a>&lt;</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;      32,</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;      4</div><div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Opera6fa6d2d3725bb3ec613d5c527ea3ffe7.html#aa04730d0ce210762957ac3096aaff2b5">  452</a></span>&#160;    &gt;;</div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;    <span class="keyword">using</span> <a class="code" href="structcutlass_1_1layout_1_1PitchLinearShape.html">LdsIterations</a> = <a class="code" href="structcutlass_1_1layout_1_1PitchLinearShape.html">layout::PitchLinearShape</a>&lt;</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;      Shape::kContiguous / LdsShape::kContiguous,</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;      InstructionShape::kStrided / LdsShape::kStrided</div><div class="line"><a name="l00457"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Opera6fa6d2d3725bb3ec613d5c527ea3ffe7.html#a59d5b0e90268306f6c164659c7dc4626">  457</a></span>&#160;    &gt;;</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;  };</div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;  <a class="code" href="platform_8h.html#adde4c9ea91b753491851361a4198c009">static_assert</a>(kOpDelta == 1,</div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;    <span class="stringliteral">&quot;Alternative arrangements not supported at present.&quot;</span>);</div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a> = <a class="code" href="classcutlass_1_1AlignedArray.html">AlignedArray&lt;Element, Layout::kElementsPerAccess&gt;</a>;</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;</div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;  <span class="comment">//</span></div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;  <span class="comment">// Derived quantities</span></div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;  <span class="comment">//</span></div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;</div><div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a68d2f239ff185b0245a3fe219776341c">  476</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a68d2f239ff185b0245a3fe219776341c">Fragment</a> = Array&lt;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a0d80bdc010e213b48f1580ec08f943e2">Element</a>, Shape::kCount / kThreads * 2&gt;;</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;</div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#aac53debde1f27fd38bb9830ea44309ad">Index</a> stride_;</div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;  <a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a> <span class="keyword">const</span> *pointer_;</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#aac53debde1f27fd38bb9830ea44309ad">Index</a> byte_offset_;</div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;</div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;</div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00493"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a0b90c3a82687e4312e9c569fa4e99c0e">  493</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a0b90c3a82687e4312e9c569fa4e99c0e">MmaVoltaTensorOpMultiplicandTileIterator</a>(): stride_(0), byte_offset_(0) { }</div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;</div><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a468ea714e860b51a6735245b7be2cae5">  497</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a468ea714e860b51a6735245b7be2cae5">MmaVoltaTensorOpMultiplicandTileIterator</a>(</div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;    <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef</a> <span class="keyword">const</span> &amp;ref,</div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;    <span class="keywordtype">int</span> lane_id</div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;  ):</div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;    stride_(ref.stride(0) / <a class="code" href="structcutlass_1_1layout_1_1VoltaTensorOpMultiplicandBCongruous.html">Layout</a>::kElementsPerAccess), byte_offset_(0) {</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;</div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;    <span class="comment">// swizzle pattern is (tid &amp; (3 &lt;&lt; 3) | (tid[1:0] ^ tid[4:3]))</span></div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;    <span class="keywordtype">int</span> access_strided = (lane_id &gt;&gt; 3) &amp; 0x3;</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;    <span class="keywordtype">int</span> access_contiguous = ((lane_id ^ (lane_id &gt;&gt; 3)) &amp; 0x3);</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;    pointer_ = <span class="keyword">reinterpret_cast&lt;</span><a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a> <span class="keyword">const </span>*<span class="keyword">&gt;</span>(ref.<a class="code" href="classcutlass_1_1TensorRef.html#ac7db3ca62ab1dfe0d3ea08bcadbc9352">data</a>()) +</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;                access_contiguous + access_strided * stride_;</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;  }</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;</div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#afd8dd07dda27b96b7ba8f4f22ba2991e">  514</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#afd8dd07dda27b96b7ba8f4f22ba2991e">add_pointer_offset</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a3cb3d779d8063f1f1e9ccb9a2d8ae7bf">LongIndex</a> offset) {</div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;</div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;    byte_offset_ += offset * <span class="keyword">sizeof</span>(Element);</div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;</div><div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;  }</div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a6ec156711b46716ee21290d211bc5967">  523</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a6ec156711b46716ee21290d211bc5967">add_tile_offset</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a7cb7f00d52b9a08c8c36180e1de2ef80">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;    <span class="keywordtype">int</span> contiguous_offset = tile_offset.contiguous();</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;    <span class="keywordtype">int</span> strided_offset = tile_offset.strided();</div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;    <span class="keywordtype">int</span> offset = (strided_offset * InstructionShape::kStrided) * stride_ *</div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;                     Layout::kElementsPerAccess +</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;                 contiguous_offset * Shape::kContiguous;</div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;    add_pointer_offset(offset);</div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;</div><div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;  }</div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;</div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00539"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a8b5d7a05b12dd435a6acb4e598643cd1">  539</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp; <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a8b5d7a05b12dd435a6acb4e598643cd1">operator++</a>() {</div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;    byte_offset_ += stride_ * InstructionShape::kStrided * <span class="keyword">sizeof</span>(Element) *</div><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;                    Layout::kElementsPerAccess;</div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;</div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;  }</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00548"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a170dc47832a0e4e2a2d4c95ee1408931">  548</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp; <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a170dc47832a0e4e2a2d4c95ee1408931">operator--</a>() {</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;    byte_offset_ += stride_ * InstructionShape::kStrided * <span class="keyword">sizeof</span>(Element) *</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;                    Layout::kElementsPerAccess;</div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;  }</div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;</div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00557"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#ab3049e27aa39203d23e891527e7ae36d">  557</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp; <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#ab3049e27aa39203d23e891527e7ae36d">operator+=</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a7cb7f00d52b9a08c8c36180e1de2ef80">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;    add_tile_offset(tile_offset);</div><div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;  }</div><div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;</div><div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00564"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#ad3244c12457461bd2f21035b202016d3">  564</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp; <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#ad3244c12457461bd2f21035b202016d3">operator-=</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a7cb7f00d52b9a08c8c36180e1de2ef80">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;    add_tile_offset(-tile_offset);</div><div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;  }</div><div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00571"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a256ae965418e83d9274896065c8e9694">  571</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a256ae965418e83d9274896065c8e9694">load</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a68d2f239ff185b0245a3fe219776341c">Fragment</a> &amp;frag)<span class="keyword"> const </span>{</div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;    load_with_byte_offset(frag, 0);</div><div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;  }</div><div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;</div><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00578"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#ac07ec8d44816b9482b29bee13a48c862">  578</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#ac07ec8d44816b9482b29bee13a48c862">load_with_byte_offset</a>(</div><div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a68d2f239ff185b0245a3fe219776341c">Fragment</a> &amp;frag,</div><div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#aac53debde1f27fd38bb9830ea44309ad">Index</a> byte_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;</div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;    <a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a> * fetch_ptr = <span class="keyword">reinterpret_cast&lt;</span><a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a> *<span class="keyword">&gt;</span>(&amp;frag);</div><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;</div><div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;    <a class="code" href="cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4">CUTLASS_PRAGMA_UNROLL</a></div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> s = 0; s &lt; Policy::LdsIterations::kStrided; ++s) {</div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;</div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;      <a class="code" href="cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4">CUTLASS_PRAGMA_UNROLL</a></div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;      <span class="keywordflow">for</span> (<span class="keywordtype">int</span> c = 0; c &lt; Policy::LdsIterations::kContiguous; ++c) {</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;</div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;        <span class="keywordtype">int</span> access_idx = c + s * Policy::LdsIterations::kContiguous;</div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;        <a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a> <span class="keyword">const</span> *source_ptr = pointer_ +</div><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;          Policy::LdsShape::kContiguous / Layout::kElementsPerAccess * c +</div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;          Policy::LdsShape::kStrided * s * stride_;</div><div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;</div><div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;        <span class="keywordtype">char</span> <span class="keyword">const</span> *source_byte_ptr = <span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">char</span> <span class="keyword">const </span>*<span class="keyword">&gt;</span>(source_ptr) + byte_offset + byte_offset_;</div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;        fetch_ptr[access_idx] = *(<span class="keyword">reinterpret_cast&lt;</span><a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a> const*<span class="keyword">&gt;</span> (source_byte_ptr));</div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;      }</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;    }</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;  }</div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;</div><div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00606"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a2ca3e91dcd8ab5b8a002d7d979ce0a3c">  606</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a2ca3e91dcd8ab5b8a002d7d979ce0a3c">load_with_pointer_offset</a>(</div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a68d2f239ff185b0245a3fe219776341c">Fragment</a> &amp;frag,</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#aac53debde1f27fd38bb9830ea44309ad">Index</a> pointer_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;    load_with_byte_offset(frag, pointer_offset * <span class="keyword">sizeof</span>(Element));</div><div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;  }</div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;</div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00616"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a5814d73aaa2b962e77d024ba4b2c5d95">  616</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a5814d73aaa2b962e77d024ba4b2c5d95">load</a>(</div><div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a68d2f239ff185b0245a3fe219776341c">Fragment</a> &amp;frag,</div><div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a7cb7f00d52b9a08c8c36180e1de2ef80">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;    load_with_byte_offset(frag, tile_offset, 0);</div><div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;  }</div><div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;</div><div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00626"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a76247b67fb13501888b1461cecc05b62">  626</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a76247b67fb13501888b1461cecc05b62">load</a>(</div><div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a68d2f239ff185b0245a3fe219776341c">Fragment</a> &amp;frag,</div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a7cb7f00d52b9a08c8c36180e1de2ef80">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset,</div><div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#aac53debde1f27fd38bb9830ea44309ad">Index</a> pointer_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;    load_with_byte_offset(frag, tile_offset, pointer_offset * <span class="keyword">sizeof</span>(Element));</div><div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;  }</div><div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;</div><div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00638"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#ae84c4afadbd34f8a95eda7dfeff28285">  638</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#ae84c4afadbd34f8a95eda7dfeff28285">load_with_byte_offset</a>(</div><div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a68d2f239ff185b0245a3fe219776341c">Fragment</a> &amp;frag,</div><div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a7cb7f00d52b9a08c8c36180e1de2ef80">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset,</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#aac53debde1f27fd38bb9830ea44309ad">Index</a> byte_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;    <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#aac53debde1f27fd38bb9830ea44309ad">Index</a> pointer_offset =</div><div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;        tile_offset.contiguous() * Shape::kContiguous /</div><div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;            Layout::kElementsPerAccess +</div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;        tile_offset.strided() * InstructionShape::kStrided * stride_;</div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;</div><div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;    byte_offset += <span class="keyword">sizeof</span>(<a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a>) * pointer_offset;</div><div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;</div><div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;    load_with_byte_offset(frag, byte_offset);</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;  }</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;</div><div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00663"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a9b2af949163bc2476ff06941cf9b9beb">  663</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a9b2af949163bc2476ff06941cf9b9beb">set_kgroup_index</a>(<span class="keywordtype">int</span> k_group) {</div><div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;    <span class="comment">// no operation here</span></div><div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;  }</div><div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;};</div><div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;</div><div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;</div><div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;<span class="keyword">template</span> &lt;</div><div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;    <span class="keyword">typename</span> Shape_,</div><div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;    <span class="keyword">typename</span> Element_,</div><div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;    <span class="keyword">typename</span> InstructionShape_,</div><div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;    <span class="keywordtype">int</span> OpDelta_&gt;</div><div class="line"><a name="l00686"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html">  686</a></span>&#160;<span class="keyword">class </span><a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a>&lt;</div><div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;    Shape_, Operand::<a class="code" href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6a30f767aa191cd5d261e767fd78393607">kA</a>, Element_,</div><div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;    <a class="code" href="structcutlass_1_1layout_1_1ColumnMajorVoltaTensorOpMultiplicandCongruous.html">cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous</a>&lt;</div><div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;        sizeof_bits&lt;Element_&gt;::value&gt;,</div><div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;    InstructionShape_, OpDelta_, 32&gt; {</div><div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;</div><div class="line"><a name="l00694"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a69792f8dad08e68d141741db9a511d3a">  694</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a69792f8dad08e68d141741db9a511d3a">Shape</a> = Shape_;</div><div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;</div><div class="line"><a name="l00697"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#af20092c53d77c819404fbadf12e25cf7">  697</a></span>&#160;  <span class="keyword">static</span> Operand <span class="keyword">const</span> kOperand = <a class="code" href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6a30f767aa191cd5d261e767fd78393607">Operand::kA</a>;</div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;</div><div class="line"><a name="l00700"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a2732ede202de8d1b785cd471df35d2c3">  700</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a2732ede202de8d1b785cd471df35d2c3">Element</a> = Element_;</div><div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;</div><div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#aa4e9fc7dc5c05b19dd8d2af7764d057c">  703</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="structcutlass_1_1layout_1_1ColumnMajorVoltaTensorOpMultiplicandCongruous.html">Layout</a> = <a class="code" href="structcutlass_1_1layout_1_1ColumnMajorVoltaTensorOpMultiplicandCongruous.html">cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt;sizeof_bits&lt;Element_&gt;::value</a>&gt;;</div><div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;</div><div class="line"><a name="l00706"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a72f221f2cb137b42d609d9d392cddcd7">  706</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a72f221f2cb137b42d609d9d392cddcd7">InstructionShape</a> = InstructionShape_;</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;</div><div class="line"><a name="l00709"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a89960b51dc335744099705e743d3d477">  709</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kOpDelta = OpDelta_;</div><div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;</div><div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a8ac5d3c8a717fd10286d5d87b1142179">  712</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kThreads = 32;</div><div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;</div><div class="line"><a name="l00715"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#ac6a94084e484aceccce9f38158201b5f">  715</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef</a> = <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef&lt;Element, Layout&gt;</a>;</div><div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;</div><div class="line"><a name="l00718"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#afffcb7e663e505117294da4896e4ad34">  718</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#afffcb7e663e505117294da4896e4ad34">Index</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#a11ec4b07a2132e647ca2ebe5112ce5ec">TensorRef::Index</a>;</div><div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;</div><div class="line"><a name="l00721"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#ad5070e7b4a207fbc27c2daec3acd5a1f">  721</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#ad5070e7b4a207fbc27c2daec3acd5a1f">LongIndex</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#adeada5e33b231f125a4aaeaf963bd3a3">TensorRef::LongIndex</a>;</div><div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;</div><div class="line"><a name="l00724"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a5f51fbbcfc8e78843f99bad748fbe74f">  724</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a5f51fbbcfc8e78843f99bad748fbe74f">TensorCoord</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#ace218cdb46555a46bd71dbdfc2c317c1">TensorRef::TensorCoord</a>;</div><div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;</div><div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">Base</a> = <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a>&lt;</div><div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;      <a class="code" href="structcutlass_1_1layout_1_1PitchLinearShape.html">layout::PitchLinearShape&lt;Shape::kRow, Shape::kColumn&gt;</a>, kOperand, <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a2732ede202de8d1b785cd471df35d2c3">Element</a>,</div><div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;      <a class="code" href="structcutlass_1_1layout_1_1VoltaTensorOpMultiplicandCongruous.html">layout::VoltaTensorOpMultiplicandCongruous&lt;sizeof_bits&lt;Element_&gt;::value</a>&gt;,</div><div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;      <a class="code" href="structcutlass_1_1layout_1_1PitchLinearShape.html">layout::PitchLinearShape</a>&lt;InstructionShape::kRow,</div><div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;                               InstructionShape::kColumn&gt;,</div><div class="line"><a name="l00732"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a7d9a8331610332f9a7beafc6bea5b8f9">  732</a></span>&#160;      kOpDelta, kThreads&gt;;</div><div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;</div><div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;</div><div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;  <span class="comment">//</span></div><div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;  <span class="comment">// Derived quantities</span></div><div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;  <span class="comment">//</span></div><div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;</div><div class="line"><a name="l00741"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#add7e4e5c9dbfb389f64bdecdf0889e74">  741</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#add7e4e5c9dbfb389f64bdecdf0889e74">Fragment</a> = Array&lt;Element, Shape::kCount / kThreads * 2&gt;;</div><div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;</div><div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;</div><div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">Base</a> iterator_;</div><div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;</div><div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;</div><div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00752"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a45b740f17537739f2bfd9441229ae8c3">  752</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a45b740f17537739f2bfd9441229ae8c3">MmaVoltaTensorOpMultiplicandTileIterator</a>() { }</div><div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;</div><div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00756"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#aba989c98c040d2b54287cfcbd629535f">  756</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#aba989c98c040d2b54287cfcbd629535f">MmaVoltaTensorOpMultiplicandTileIterator</a>(</div><div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;    <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef</a> <span class="keyword">const</span> &amp;ref,</div><div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;    <span class="keywordtype">int</span> lane_id</div><div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;  ): iterator_({ref.<a class="code" href="classcutlass_1_1TensorRef.html#ac7db3ca62ab1dfe0d3ea08bcadbc9352">data</a>(), ref.<a class="code" href="classcutlass_1_1TensorRef.html#a191e88bc0fb310be655d700e937ab97c">stride</a>()}, lane_id) {</div><div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;  }</div><div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;</div><div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00764"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#ae6152b882eb37b1e81930b0fa1bc8cab">  764</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#ae6152b882eb37b1e81930b0fa1bc8cab">add_pointer_offset</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#ad5070e7b4a207fbc27c2daec3acd5a1f">LongIndex</a> offset) {</div><div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;</div><div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;    iterator_.add_pointer_offset(offset);</div><div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;</div><div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;  }</div><div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;</div><div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00773"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#ac34548b686d8e76013875c7e4ee725d6">  773</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#ac34548b686d8e76013875c7e4ee725d6">add_tile_offset</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a5f51fbbcfc8e78843f99bad748fbe74f">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;</div><div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;    iterator_.add_tile_offset({tile_offset.row(), tile_offset.column()});</div><div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;</div><div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;  }</div><div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;</div><div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00782"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#adb4c78fa4cedb201d10334748aa1fdc9">  782</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp; <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#adb4c78fa4cedb201d10334748aa1fdc9">operator++</a>() {</div><div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;</div><div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;    ++iterator_;</div><div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;</div><div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;  }</div><div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;</div><div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00791"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#ac920b9ce72a6e473dc7da0c55592d515">  791</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp; <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#ac920b9ce72a6e473dc7da0c55592d515">operator--</a>() {</div><div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;</div><div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;    --iterator_;</div><div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;</div><div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;  }</div><div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;</div><div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00800"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a226402c19b486c0424b8ac6d8ef21409">  800</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp; <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a226402c19b486c0424b8ac6d8ef21409">operator+=</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a5f51fbbcfc8e78843f99bad748fbe74f">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;    add_tile_offset(PitchLinearCoord(tile_offset.row(), tile_offset.column()));</div><div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;  }</div><div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;</div><div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00807"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a2eae25791f7973945d760fcae0f35cf7">  807</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp; <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a2eae25791f7973945d760fcae0f35cf7">operator-=</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a5f51fbbcfc8e78843f99bad748fbe74f">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;    add_tile_offset(-PitchLinearCoord(tile_offset.row(), tile_offset.column()));</div><div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;  }</div><div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;</div><div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00814"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#aa44f01f44b93015d1b5ff71490704978">  814</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#aa44f01f44b93015d1b5ff71490704978">load</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#add7e4e5c9dbfb389f64bdecdf0889e74">Fragment</a> &amp;frag)<span class="keyword"> const </span>{</div><div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;</div><div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;    iterator_.load(frag);</div><div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;  }</div><div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;</div><div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00821"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a7d8453d7701d5a41b517e877e202187a">  821</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a7d8453d7701d5a41b517e877e202187a">load_with_pointer_offset</a>(</div><div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#add7e4e5c9dbfb389f64bdecdf0889e74">Fragment</a> &amp;frag,</div><div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#afffcb7e663e505117294da4896e4ad34">Index</a> pointer_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;    iterator_.load_with_pointer_offset(frag, pointer_offset);</div><div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;  }</div><div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;</div><div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00831"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#af527f0fc64c4b200a82e8826db791423">  831</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#af527f0fc64c4b200a82e8826db791423">load_with_byte_offset</a>(</div><div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#add7e4e5c9dbfb389f64bdecdf0889e74">Fragment</a> &amp;frag,</div><div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#afffcb7e663e505117294da4896e4ad34">Index</a> byte_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;    iterator_.load_with_byte_offset(frag, byte_offset);</div><div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;  }</div><div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;</div><div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00841"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a6443a420c3718fda835000b1e4411230">  841</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a6443a420c3718fda835000b1e4411230">load</a>(</div><div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#add7e4e5c9dbfb389f64bdecdf0889e74">Fragment</a> &amp;frag,</div><div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a5f51fbbcfc8e78843f99bad748fbe74f">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;    <span class="comment">// TODO</span></div><div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;  }</div><div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;</div><div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00851"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a02418de1fd12f6408e6b3e8da55b36cb">  851</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a02418de1fd12f6408e6b3e8da55b36cb">load</a>(</div><div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#add7e4e5c9dbfb389f64bdecdf0889e74">Fragment</a> &amp;frag,</div><div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a5f51fbbcfc8e78843f99bad748fbe74f">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset,</div><div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#afffcb7e663e505117294da4896e4ad34">Index</a> pointer_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;    <span class="comment">// TODO</span></div><div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;  }</div><div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;</div><div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00863"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a055e9b2eaae127c3087bf195de8a3f5d">  863</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a055e9b2eaae127c3087bf195de8a3f5d">load_with_byte_offset</a>(</div><div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#add7e4e5c9dbfb389f64bdecdf0889e74">Fragment</a> &amp;frag,</div><div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a5f51fbbcfc8e78843f99bad748fbe74f">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset,</div><div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#afffcb7e663e505117294da4896e4ad34">Index</a> byte_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;    iterator_.load_with_byte_offset(</div><div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;      frag,</div><div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;      {tile_offset.contiguous(), tile_offset.strided()},</div><div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;      byte_offset);</div><div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;  }</div><div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;</div><div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l00884"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#ab312bab8dc7c2b3b39b193b4a2e0a076">  884</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#ab312bab8dc7c2b3b39b193b4a2e0a076">set_kgroup_index</a>(<span class="keywordtype">int</span> k_group) {</div><div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;    iterator_.set_kgroup_index(k_group); </div><div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;  }</div><div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;};</div><div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;</div><div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;</div><div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;<span class="keyword">template</span> &lt;</div><div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;    <span class="keyword">typename</span> Shape_,</div><div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;    <span class="keyword">typename</span> Element_,</div><div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;    <span class="keyword">typename</span> InstructionShape_,</div><div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;    <span class="keywordtype">int</span> OpDelta_&gt;</div><div class="line"><a name="l00907"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html">  907</a></span>&#160;<span class="keyword">class </span><a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a>&lt;</div><div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;    Shape_, Operand::<a class="code" href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6a3e56c011b37f0bc78fb9eb175c1181c6">kB</a>, Element_,</div><div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;    <a class="code" href="structcutlass_1_1layout_1_1RowMajorVoltaTensorOpMultiplicandBCongruous.html">cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous</a>&lt;</div><div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;        sizeof_bits&lt;Element_&gt;::value&gt;,</div><div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;    InstructionShape_, OpDelta_, 32&gt; {</div><div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;</div><div class="line"><a name="l00915"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#aae213dc524ddd759d900a701912e4182">  915</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#aae213dc524ddd759d900a701912e4182">Shape</a> = Shape_;</div><div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;</div><div class="line"><a name="l00918"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a33ed89a72f7be6c7f382e38e27946e01">  918</a></span>&#160;  <span class="keyword">static</span> Operand <span class="keyword">const</span> kOperand = <a class="code" href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6a3e56c011b37f0bc78fb9eb175c1181c6">Operand::kB</a>;</div><div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;</div><div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;  <a class="code" href="platform_8h.html#adde4c9ea91b753491851361a4198c009">static_assert</a>(kOperand == <a class="code" href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6a30f767aa191cd5d261e767fd78393607">Operand::kA</a> || kOperand== <a class="code" href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6a3e56c011b37f0bc78fb9eb175c1181c6">Operand::kB</a>,</div><div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;    <span class="stringliteral">&quot;MmaTensorOpMultiplicandIterator may only be instantiated for A or B operands to warp-level Mma.&quot;</span>);</div><div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;</div><div class="line"><a name="l00924"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#adc0a513d69524b9b58f6fddae5643401">  924</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#adc0a513d69524b9b58f6fddae5643401">Element</a> = Element_;</div><div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;</div><div class="line"><a name="l00927"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a7826b08e571f45ada4b56ddd1076572a">  927</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="structcutlass_1_1layout_1_1RowMajorVoltaTensorOpMultiplicandBCongruous.html">Layout</a> = <a class="code" href="structcutlass_1_1layout_1_1RowMajorVoltaTensorOpMultiplicandBCongruous.html">cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt;sizeof_bits&lt;Element_&gt;::value</a>&gt;;</div><div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;</div><div class="line"><a name="l00930"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a45012fadebb81b49bba98949ea228a0b">  930</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a45012fadebb81b49bba98949ea228a0b">InstructionShape</a> = InstructionShape_;</div><div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;</div><div class="line"><a name="l00933"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a9f5b8306d5a55373e78cd150fa5df31b">  933</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kOpDelta = OpDelta_;</div><div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;</div><div class="line"><a name="l00936"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#aa8ad5855f256043b1b232d0149f4ae66">  936</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kThreads = 32;</div><div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;</div><div class="line"><a name="l00939"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a6aff42d408303daddb33681d09b5fc39">  939</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef</a> = <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef&lt;Element, Layout&gt;</a>;</div><div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;</div><div class="line"><a name="l00942"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a461f3f3f5827b7144952b13e9861e4c0">  942</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a461f3f3f5827b7144952b13e9861e4c0">Index</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#a11ec4b07a2132e647ca2ebe5112ce5ec">TensorRef::Index</a>;</div><div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;</div><div class="line"><a name="l00945"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a7c27b972639b99fcb4b7865d2294f214">  945</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a7c27b972639b99fcb4b7865d2294f214">LongIndex</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#adeada5e33b231f125a4aaeaf963bd3a3">TensorRef::LongIndex</a>;</div><div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;</div><div class="line"><a name="l00948"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a04b771d2fe6ce4f48f833b8afac8cd00">  948</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a04b771d2fe6ce4f48f833b8afac8cd00">TensorCoord</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#ace218cdb46555a46bd71dbdfc2c317c1">TensorRef::TensorCoord</a>;</div><div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;</div><div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">Base</a> = <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a>&lt;</div><div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;      <a class="code" href="structcutlass_1_1layout_1_1PitchLinearShape.html">layout::PitchLinearShape&lt;Shape::kColumn, Shape::kRow&gt;</a>, kOperand, <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#adc0a513d69524b9b58f6fddae5643401">Element</a>,</div><div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;      <a class="code" href="structcutlass_1_1layout_1_1VoltaTensorOpMultiplicandBCongruous.html">layout::VoltaTensorOpMultiplicandBCongruous&lt;sizeof_bits&lt;Element_&gt;::value</a>&gt;,</div><div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;      <a class="code" href="structcutlass_1_1layout_1_1PitchLinearShape.html">layout::PitchLinearShape</a>&lt;InstructionShape::kColumn,</div><div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;                               InstructionShape::kRow&gt;,</div><div class="line"><a name="l00956"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a52032223ac0c998e52019aa4e79c0a63">  956</a></span>&#160;      kOpDelta, kThreads&gt;;</div><div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;</div><div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;</div><div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;  <span class="comment">//</span></div><div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;  <span class="comment">// Derived quantities</span></div><div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;  <span class="comment">//</span></div><div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;</div><div class="line"><a name="l00965"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a348b537e5cdfe105400ad1a66f20e6b4">  965</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a348b537e5cdfe105400ad1a66f20e6b4">Fragment</a> = Array&lt;Element, Shape::kCount / kThreads * 2&gt;;</div><div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;</div><div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;</div><div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">Base</a> iterator_;</div><div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;</div><div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;</div><div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00976"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a7bd1a6f3bffc4d67434dbd03a70eec55">  976</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a7bd1a6f3bffc4d67434dbd03a70eec55">MmaVoltaTensorOpMultiplicandTileIterator</a>() { }</div><div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;</div><div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00980"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a3e386fc8b9fa4715b3ed437f85695b4a">  980</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a3e386fc8b9fa4715b3ed437f85695b4a">MmaVoltaTensorOpMultiplicandTileIterator</a>(</div><div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;    <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef</a> <span class="keyword">const</span> &amp;ref,</div><div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;    <span class="keywordtype">int</span> lane_id</div><div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;  ): iterator_({ref.<a class="code" href="classcutlass_1_1TensorRef.html#ac7db3ca62ab1dfe0d3ea08bcadbc9352">data</a>(), ref.<a class="code" href="classcutlass_1_1TensorRef.html#a191e88bc0fb310be655d700e937ab97c">stride</a>()}, lane_id) {</div><div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;  }</div><div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;</div><div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00988"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#af22432bf96baa56356a65e442ee8b3e7">  988</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#af22432bf96baa56356a65e442ee8b3e7">add_pointer_offset</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a7c27b972639b99fcb4b7865d2294f214">LongIndex</a> offset) {</div><div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;</div><div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;    iterator_.add_pointer_offset(offset);</div><div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;</div><div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;  }</div><div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;</div><div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00997"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#ade5a97dd91ba6e619893ff3d9fb16abf">  997</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#ade5a97dd91ba6e619893ff3d9fb16abf">add_tile_offset</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a04b771d2fe6ce4f48f833b8afac8cd00">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;</div><div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;    iterator_.add_tile_offset({tile_offset.column(), tile_offset.row()});</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;  }</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01006"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a4cbfc44c1eac4ae4fd6571455b7b503d"> 1006</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp; <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a4cbfc44c1eac4ae4fd6571455b7b503d">operator++</a>() {</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;    ++iterator_;</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;  }</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01015"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#ad70d6d18a516d29a9a2234823ed0379e"> 1015</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp; <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#ad70d6d18a516d29a9a2234823ed0379e">operator--</a>() {</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;    --iterator_;</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;  }</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01024"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a646f6d40a4b8d446aedc0c709a04f9b4"> 1024</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp; <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a646f6d40a4b8d446aedc0c709a04f9b4">operator+=</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a04b771d2fe6ce4f48f833b8afac8cd00">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;    add_tile_offset(PitchLinearCoord(tile_offset.column(), tile_offset.row()));</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;  }</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01031"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a561d838825c39ba946afc2125dcc9fe0"> 1031</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp; <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a561d838825c39ba946afc2125dcc9fe0">operator-=</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a04b771d2fe6ce4f48f833b8afac8cd00">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;    add_tile_offset(-PitchLinearCoord(tile_offset.column(), tile_offset.row()));</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;  }</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01038"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a6c04618a770059846c166c51f11800a4"> 1038</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a6c04618a770059846c166c51f11800a4">load</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a348b537e5cdfe105400ad1a66f20e6b4">Fragment</a> &amp;frag)<span class="keyword"> const </span>{</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;    iterator_.load(frag);</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;  }</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01045"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a8eb60b70495618293bd218736ae54f86"> 1045</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a8eb60b70495618293bd218736ae54f86">load_with_pointer_offset</a>(</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a348b537e5cdfe105400ad1a66f20e6b4">Fragment</a> &amp;frag,</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a461f3f3f5827b7144952b13e9861e4c0">Index</a> pointer_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;    iterator_.load_with_pointer_offset(frag, pointer_offset);</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;  }</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01055"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a6ffbe61c91df0f25007ed465787f9e5c"> 1055</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a6ffbe61c91df0f25007ed465787f9e5c">load_with_byte_offset</a>(</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a348b537e5cdfe105400ad1a66f20e6b4">Fragment</a> &amp;frag,</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a461f3f3f5827b7144952b13e9861e4c0">Index</a> byte_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;    iterator_.load_with_byte_offset(frag, byte_offset);</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;  }</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01065"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a312937f6d421b038e4c391fad45647cb"> 1065</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a312937f6d421b038e4c391fad45647cb">load</a>(</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a348b537e5cdfe105400ad1a66f20e6b4">Fragment</a> &amp;frag,</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a04b771d2fe6ce4f48f833b8afac8cd00">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;    <span class="comment">// TODO</span></div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;  }</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01075"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a2c8a1e5f9ac32145eebd63a33fa97864"> 1075</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a2c8a1e5f9ac32145eebd63a33fa97864">load</a>(</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a348b537e5cdfe105400ad1a66f20e6b4">Fragment</a> &amp;frag,</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a04b771d2fe6ce4f48f833b8afac8cd00">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset,</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a461f3f3f5827b7144952b13e9861e4c0">Index</a> pointer_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;    <span class="comment">// TODO</span></div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;  }</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01087"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a246717a0cb4bbde1e32becac3835b89c"> 1087</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a246717a0cb4bbde1e32becac3835b89c">load_with_byte_offset</a>(</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a348b537e5cdfe105400ad1a66f20e6b4">Fragment</a> &amp;frag,</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a04b771d2fe6ce4f48f833b8afac8cd00">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset,</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a461f3f3f5827b7144952b13e9861e4c0">Index</a> byte_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;    iterator_.load_with_byte_offset(</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;      frag,</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;      {tile_offset.strided(), tile_offset.contiguous()},</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;      byte_offset);</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;  }</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01108"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a363ce88e77cbdb4e9f30760899cc6796"> 1108</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a363ce88e77cbdb4e9f30760899cc6796">set_kgroup_index</a>(<span class="keywordtype">int</span> k_group) {</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;    iterator_.set_kgroup_index(k_group); </div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;  }</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;};</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;<span class="keyword">template</span> &lt;</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;    <span class="keyword">typename</span> Shape_,</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;    <span class="keyword">typename</span> Element_,</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;    <span class="keyword">typename</span> Layout_,</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;    <span class="keyword">typename</span> InstructionShape_,</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;    <span class="keyword">typename</span> OpDelta_&gt;</div><div class="line"><a name="l01135"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html"> 1135</a></span>&#160;<span class="keyword">class </span><a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html">MmaVoltaTensorOpAccumulatorTileIterator</a> {</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;</div><div class="line"><a name="l01139"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#ab4ce693e7f3d9ad052292cc51c6c7957"> 1139</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#ab4ce693e7f3d9ad052292cc51c6c7957">Shape</a> = Shape_;</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;</div><div class="line"><a name="l01142"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a99c386e8d33f3e69a07ff75107a20205"> 1142</a></span>&#160;  <span class="keyword">static</span> Operand <span class="keyword">const</span> kOperand = <a class="code" href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6af73b7a14626c25aa554e2437ea3fc1df">Operand::kC</a>;</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;</div><div class="line"><a name="l01145"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a96ce4cf07ba15f3d14a78db2c90e9dba"> 1145</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a96ce4cf07ba15f3d14a78db2c90e9dba">Element</a> = Element_;</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;</div><div class="line"><a name="l01148"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#afaee932bcd7c0e32352e4857903debcb"> 1148</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#afaee932bcd7c0e32352e4857903debcb">Layout</a> = Layout_;</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;</div><div class="line"><a name="l01151"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#ab907fdc0fef5042e740e24d7dc4e59b7"> 1151</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#ab907fdc0fef5042e740e24d7dc4e59b7">InstructionShape</a> = InstructionShape_;</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;</div><div class="line"><a name="l01154"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a66d8214a8290a5f32774177dbe8866ef"> 1154</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a66d8214a8290a5f32774177dbe8866ef">OpDelta</a> = OpDelta_;</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;</div><div class="line"><a name="l01157"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a89382d6c3b4754de25687f52bc4e988d"> 1157</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kThreads = 32;</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;</div><div class="line"><a name="l01160"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a08fb418e93a2a4cb412ffcd0db588de6"> 1160</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef</a> = <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef&lt;Element, Layout&gt;</a>;</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;</div><div class="line"><a name="l01163"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a2fc7c23f777567b6b738dcaf0e253298"> 1163</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a2fc7c23f777567b6b738dcaf0e253298">Index</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#a11ec4b07a2132e647ca2ebe5112ce5ec">TensorRef::Index</a>;</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;</div><div class="line"><a name="l01166"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#ac3e514d9c671bff4053be3a535713ddc"> 1166</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#ac3e514d9c671bff4053be3a535713ddc">LongIndex</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#adeada5e33b231f125a4aaeaf963bd3a3">TensorRef::LongIndex</a>;</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;</div><div class="line"><a name="l01169"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a78c676d890fa2e0cf42b762bb03eb227"> 1169</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a78c676d890fa2e0cf42b762bb03eb227">TensorCoord</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#ace218cdb46555a46bd71dbdfc2c317c1">TensorRef::TensorCoord</a>;</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;</div><div class="line"><a name="l01172"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_1_1Policy.html"> 1172</a></span>&#160;  <span class="keyword">struct </span><a class="code" href="structcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_1_1Policy.html">Policy</a> {</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;</div><div class="line"><a name="l01175"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_1_1Policy.html#abc6ad2f60f697528ad075e0f4c7231b6"> 1175</a></span>&#160;    <span class="keyword">using</span> <a class="code" href="structcutlass_1_1MatrixShape.html">InterleavedTile</a> = <a class="code" href="structcutlass_1_1MatrixShape.html">MatrixShape&lt;32, 32&gt;</a>;</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;    <a class="code" href="platform_8h.html#adde4c9ea91b753491851361a4198c009">static_assert</a>(!(Shape::kRow % InterleavedTile::kRow) &amp;&amp; !(Shape::kColumn % InterleavedTile::kColumn),</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;      <span class="stringliteral">&quot;Shape of warp-level Mma must be divisible by operator shape.&quot;</span>);</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;    <a class="code" href="platform_8h.html#adde4c9ea91b753491851361a4198c009">static_assert</a>(<a class="code" href="structcutlass_1_1platform_1_1is__same.html">platform::is_same&lt;TensorCoord, MatrixCoord&gt;::value</a>,</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;      <span class="stringliteral">&quot;Layouts must be defined for logical MatrixCoord coordinate space.&quot;</span>);</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;    <span class="keyword">using</span> <a class="code" href="structcutlass_1_1MatrixShape.html">TileIterations</a> = <a class="code" href="structcutlass_1_1MatrixShape.html">MatrixShape</a>&lt;</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;      Shape::kRow / InterleavedTile::kRow,</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;      Shape::kColumn / InterleavedTile::kColumn</div><div class="line"><a name="l01187"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_1_1Policy.html#a403a2671fc456cd77d9220ec3b00e90e"> 1187</a></span>&#160;    &gt;;</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;    <span class="keyword">using</span> <a class="code" href="structcutlass_1_1MatrixShape.html">MmaIterations</a> =</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;        <a class="code" href="structcutlass_1_1MatrixShape.html">MatrixShape</a>&lt;InterleavedTile::kRow / InstructionShape::kM,</div><div class="line"><a name="l01191"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_1_1Policy.html#a097dab943f286373446529301b6c5f19"> 1191</a></span>&#160;                    InterleavedTile::kColumn / InstructionShape::kN&gt;;</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;  };</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;  <span class="comment">// Assume accumulator tile is multipile interleaved 32x32 tile.</span></div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kElementsPerPartial = 4;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;  <span class="keyword">using</span> EleShapePerPatial = <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1platform_1_1conditional.html">platform::conditional</a>&lt;</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;                              <a class="code" href="structcutlass_1_1platform_1_1is__same.html">platform::is_same&lt;Element, float&gt;::value</a>,</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;                              <a class="code" href="structcutlass_1_1MatrixShape.html">MatrixShape&lt;2, 2&gt;</a>,</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;                              <a class="code" href="structcutlass_1_1MatrixShape.html">MatrixShape&lt;1, 4&gt;</a> &gt;::type;</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kElementsPerMma = 8;</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kAccumulatorPatials = 2;</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;  <span class="keyword">using</span> <a class="code" href="structcutlass_1_1MatrixShape.html">QuadShapePerPatialMma</a> = <a class="code" href="structcutlass_1_1MatrixShape.html">MatrixShape&lt;4, 4&gt;</a>;</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;  <span class="comment">//</span></div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;  <span class="comment">// Derived quantities</span></div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;  <span class="comment">//</span></div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;</div><div class="line"><a name="l01213"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#acd54606d757015b77519e3a4b8491b37"> 1213</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#acd54606d757015b77519e3a4b8491b37">Fragment</a> = Array&lt;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a96ce4cf07ba15f3d14a78db2c90e9dba">Element</a>, Shape::kCount / kThreads&gt;;</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;  <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef</a> ref_;</div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01224"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a9a5997c666e1e5f0dd19e238c4f2307b"> 1224</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a9a5997c666e1e5f0dd19e238c4f2307b">MmaVoltaTensorOpAccumulatorTileIterator</a>() { }</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01228"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a2ea78accad63178308845b9d4e757465"> 1228</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a2ea78accad63178308845b9d4e757465">MmaVoltaTensorOpAccumulatorTileIterator</a>(</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;    <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef</a> <span class="keyword">const</span> &amp;ref,</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;    <span class="keywordtype">int</span> lane_id</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;  ):</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;    ref_(ref) {</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;    <span class="keywordtype">int</span> quad = (lane_id &gt;&gt; 2);</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;    <span class="keywordtype">int</span> lane_in_quad = (lane_id &amp; 3);</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;    <span class="keywordtype">int</span> accum_m, accum_n;</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;    <span class="keywordflow">if</span> (platform::is_same&lt;Element, float&gt;::value) {</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;      <span class="comment">// (quad[2],quad[0])+lane_in_quad[0]</span></div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;      accum_m = (((quad &amp; 0x4) &gt;&gt; 1) + (quad &amp; 0x1)) * 8 + (lane_in_quad &amp; 1);</div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;      <span class="comment">// (quad[1])+lane_in_quad[1]</span></div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;      accum_n = ((quad &gt;&gt; 1) &amp; 0x1) * kElementsPerPartial * kAccumulatorPatials +</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;                  (lane_in_quad &amp; 2);</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;      accum_m = (((quad &amp; 0x4) &gt;&gt; 1) + (quad &amp; 0x1)) * 8 + lane_in_quad; <span class="comment">// (quad[2],quad[0])</span></div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;      accum_n = ((quad &gt;&gt; 1) &amp; 0x1) * kElementsPerPartial * kAccumulatorPatials;</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;    }</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;    <a class="code" href="structcutlass_1_1MatrixCoord.html">MatrixCoord</a> lane_offset(accum_m, accum_n);</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;    ref_.<a class="code" href="classcutlass_1_1TensorRef.html#a4bed879c428963070de8ffbdc5d6e4f9">add_coord_offset</a>(lane_offset);</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;  }</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01255"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#ac772f25bc37f9ebc9c21097492217960"> 1255</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html">MmaVoltaTensorOpAccumulatorTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#ac772f25bc37f9ebc9c21097492217960">add_pointer_offset</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#ac3e514d9c671bff4053be3a535713ddc">LongIndex</a> offset) {</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;    ref_.<a class="code" href="classcutlass_1_1TensorRef.html#a6bbcd0e512915565cabfeccdb1b6417d">add_pointer_offset</a>(offset);</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;  }</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01262"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#acaf2ce431cba77e8658abe29a37dad1f"> 1262</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html">MmaVoltaTensorOpAccumulatorTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#acaf2ce431cba77e8658abe29a37dad1f">add_tile_offset</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a78c676d890fa2e0cf42b762bb03eb227">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;    ref_.<a class="code" href="classcutlass_1_1TensorRef.html#a4bed879c428963070de8ffbdc5d6e4f9">add_coord_offset</a>(tile_offset * <a class="code" href="namespacecutlass.html#a7419519fa453a121dfa5f26bf87318d9">make_Coord</a>(Shape::kRow, Shape::kColumn));</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;  }</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01271"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a1f4fce885f0c011704b89375ab18fec8"> 1271</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html">MmaVoltaTensorOpAccumulatorTileIterator</a> &amp; <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a1f4fce885f0c011704b89375ab18fec8">operator++</a>() {</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;    <span class="comment">// deliberate no-op</span></div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;  }</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01278"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#abf77a8981beee6433afcae3c820719e2"> 1278</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html">MmaVoltaTensorOpAccumulatorTileIterator</a> &amp; <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#abf77a8981beee6433afcae3c820719e2">operator--</a>() {</div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;    <span class="comment">// deliberate no-op</span></div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;  }</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01285"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a9c6b5b280940abc435d27d67d89f9238"> 1285</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html">MmaVoltaTensorOpAccumulatorTileIterator</a> &amp; <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a9c6b5b280940abc435d27d67d89f9238">operator+=</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a78c676d890fa2e0cf42b762bb03eb227">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;    add_tile_offset(tile_offset);</div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;  }</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01292"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a2e77e28efc5efcb411258d4e55c63a4e"> 1292</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html">MmaVoltaTensorOpAccumulatorTileIterator</a> &amp; <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a2e77e28efc5efcb411258d4e55c63a4e">operator-=</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a78c676d890fa2e0cf42b762bb03eb227">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160;    add_tile_offset(-tile_offset);</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;  }</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01299"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a6d13731e2bfa90431aac91e05f66915c"> 1299</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a6d13731e2bfa90431aac91e05f66915c">load</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#acd54606d757015b77519e3a4b8491b37">Fragment</a> &amp;frag)<span class="keyword"> const </span>{</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;    load_with_pointer_offset(frag, 0);</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;  }</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01305"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a279a159ec2eec9a474465aa8365c643c"> 1305</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a279a159ec2eec9a474465aa8365c643c">load_with_pointer_offset</a>(</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;    <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#acd54606d757015b77519e3a4b8491b37">Fragment</a> &amp;frag,                             </div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;    <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a2fc7c23f777567b6b738dcaf0e253298">Index</a> pointer_offset)<span class="keyword"> const </span>{               </div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;    <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef</a> offset_ref(ref_);</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;    offset_ref.<a class="code" href="classcutlass_1_1TensorRef.html#a6bbcd0e512915565cabfeccdb1b6417d">add_pointer_offset</a>(pointer_offset);</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;    <a class="code" href="cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4">CUTLASS_PRAGMA_UNROLL</a></div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> tile_n = 0; tile_n &lt; Policy::TileIterations::kColumn; ++tile_n) {</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;      <a class="code" href="cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4">CUTLASS_PRAGMA_UNROLL</a></div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;      <span class="keywordflow">for</span> (<span class="keywordtype">int</span> tile_m = 0; tile_m &lt; Policy::TileIterations::kRow; ++tile_m) {</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;        <a class="code" href="cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4">CUTLASS_PRAGMA_UNROLL</a></div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> mma_n = 0; mma_n &lt; Policy::MmaIterations::kColumn; ++mma_n) {</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;          <a class="code" href="cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4">CUTLASS_PRAGMA_UNROLL</a></div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;          <span class="keywordflow">for</span> (<span class="keywordtype">int</span> mma_m = 0; mma_m &lt; Policy::MmaIterations::kRow; ++mma_m) {</div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;</div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;            <span class="keywordtype">int</span> mma_accum_start =</div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;                (((tile_n * Policy::TileIterations::kRow + tile_m) *</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;                    Policy::MmaIterations::kColumn + mma_n) *</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;                     Policy::MmaIterations::kRow + mma_m) * </div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;                    kElementsPerMma;</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;           <a class="code" href="cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4">CUTLASS_PRAGMA_UNROLL</a></div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">int</span> p = 0; p &lt; kAccumulatorPatials; ++p) {</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;              <a class="code" href="cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4">CUTLASS_PRAGMA_UNROLL</a></div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;              <span class="keywordflow">for</span> (<span class="keywordtype">int</span> m = 0; m &lt; EleShapePerPatial::kRow; ++m) {</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;                <a class="code" href="cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4">CUTLASS_PRAGMA_UNROLL</a></div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> n = 0; n &lt; EleShapePerPatial::kColumn; ++n) {</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;                  <span class="keywordtype">int</span> accum_m = tile_m * Policy::InterleavedTile::kRow +</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;                                mma_m * QuadShapePerPatialMma::kRow + m * 2;</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;                  <span class="keywordtype">int</span> accum_n = tile_n * Policy::InterleavedTile::kColumn + </div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;                                mma_n * QuadShapePerPatialMma::kColumn +</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;                                p * Policy::InterleavedTile::kColumn/2 + n;</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;                  <span class="keywordtype">int</span> idx = mma_accum_start + p * kElementsPerPartial + </div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;                            m * EleShapePerPatial::kColumn + n;</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;                frag[idx] = offset_ref.<a class="code" href="classcutlass_1_1TensorRef.html#a8758907a1c9b1fcd00e7ece626d03b76">at</a>({accum_m, accum_n});</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;                }</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;              }</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;            }</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;          }</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;        }</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;      }</div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;    }</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;  }</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01351"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#adefa4a6e04cd3e1ed22e514602d7269e"> 1351</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#adefa4a6e04cd3e1ed22e514602d7269e">load_with_byte_offset</a>(</div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;    <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#acd54606d757015b77519e3a4b8491b37">Fragment</a> &amp;frag,                             </div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;    <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a2fc7c23f777567b6b738dcaf0e253298">Index</a> byte_offset)<span class="keyword"> const </span>{                  </div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;    load_with_pointer_offset(byte_offset / <span class="keyword">sizeof</span>(Element));</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160;  }</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01360"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a8dc93057f62af4c272f485c1b5d027a3"> 1360</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a8dc93057f62af4c272f485c1b5d027a3">load</a>(</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;    <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#acd54606d757015b77519e3a4b8491b37">Fragment</a> &amp;frag,                             </div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;    <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a78c676d890fa2e0cf42b762bb03eb227">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset)<span class="keyword"> const </span>{     </div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;    load(frag, tile_offset, 0);</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;  }</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01369"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a6d159862172d1716b11418ddc5bc93fc"> 1369</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a6d159862172d1716b11418ddc5bc93fc">load</a>(</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;    <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#acd54606d757015b77519e3a4b8491b37">Fragment</a> &amp;frag,                             </div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;    <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a78c676d890fa2e0cf42b762bb03eb227">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset,             </div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;    <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a2fc7c23f777567b6b738dcaf0e253298">Index</a> pointer_offset)<span class="keyword"> const </span>{               </div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;</div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;    load_with_pointer_offset(frag, ref_.<a class="code" href="classcutlass_1_1TensorRef.html#a4166ac2a0754574ac21d5d57d74f34e5">offset</a>(tile_offset) + pointer_offset);</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;  }</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;</div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01379"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#abf4e5b0263508ed800ee2c2a57e65c3a"> 1379</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#abf4e5b0263508ed800ee2c2a57e65c3a">store</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#acd54606d757015b77519e3a4b8491b37">Fragment</a> <span class="keyword">const</span> &amp;frag)<span class="keyword"> const </span>{</div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;    store_with_pointer_offset(frag, 0);</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;  }</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01385"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a3135442d51ee6a60d052df8c654fa167"> 1385</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a3135442d51ee6a60d052df8c654fa167">store_with_pointer_offset</a>(</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;    <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#acd54606d757015b77519e3a4b8491b37">Fragment</a> <span class="keyword">const</span> &amp;frag,                       </div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;    <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a2fc7c23f777567b6b738dcaf0e253298">Index</a> pointer_offset)<span class="keyword"> const </span>{               </div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;    <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef</a> offset_ref(ref_);</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;    offset_ref.<a class="code" href="classcutlass_1_1TensorRef.html#a6bbcd0e512915565cabfeccdb1b6417d">add_pointer_offset</a>(pointer_offset);</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;    <a class="code" href="cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4">CUTLASS_PRAGMA_UNROLL</a></div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> tile_n = 0; tile_n &lt; Policy::TileIterations::kColumn; ++tile_n) {</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;      <a class="code" href="cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4">CUTLASS_PRAGMA_UNROLL</a></div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;      <span class="keywordflow">for</span> (<span class="keywordtype">int</span> tile_m = 0; tile_m &lt; Policy::TileIterations::kRow; ++tile_m) {</div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;        <a class="code" href="cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4">CUTLASS_PRAGMA_UNROLL</a></div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> mma_n = 0; mma_n &lt; Policy::MmaIterations::kColumn; ++mma_n) {</div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;          <a class="code" href="cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4">CUTLASS_PRAGMA_UNROLL</a></div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;          <span class="keywordflow">for</span> (<span class="keywordtype">int</span> mma_m = 0; mma_m &lt; Policy::MmaIterations::kRow; ++mma_m) {</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;</div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;            <span class="keywordtype">int</span> mma_accum_start =</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;                (((tile_n * Policy::TileIterations::kRow + tile_m) *</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;                    Policy::MmaIterations::kColumn + mma_n) *</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;                     Policy::MmaIterations::kRow + mma_m) * </div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;                    kElementsPerMma;</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;            <a class="code" href="cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4">CUTLASS_PRAGMA_UNROLL</a></div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">int</span> p = 0; p &lt; kAccumulatorPatials; ++p) {</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;              <a class="code" href="cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4">CUTLASS_PRAGMA_UNROLL</a></div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;              <span class="keywordflow">for</span> (<span class="keywordtype">int</span> m = 0; m &lt; EleShapePerPatial::kRow; ++m) {</div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;                <a class="code" href="cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4">CUTLASS_PRAGMA_UNROLL</a></div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> n = 0; n &lt; EleShapePerPatial::kColumn; ++n) {</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;                  <span class="keywordtype">int</span> accum_m = tile_m * Policy::InterleavedTile::kRow +</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;                                mma_m * QuadShapePerPatialMma::kRow + m * 2;</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;                  <span class="keywordtype">int</span> accum_n = tile_n * Policy::InterleavedTile::kColumn + </div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;                                mma_n * QuadShapePerPatialMma::kColumn +</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;                                p * Policy::InterleavedTile::kColumn/2 + n;</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;                  <span class="keywordtype">int</span> idx = mma_accum_start + p * kElementsPerPartial + </div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;                            m * EleShapePerPatial::kColumn + n;</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;                  offset_ref.<a class="code" href="classcutlass_1_1TensorRef.html#a8758907a1c9b1fcd00e7ece626d03b76">at</a>({accum_m, accum_n}) = frag[idx];</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;                }</div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;              }</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;            }</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;          }</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;        }</div><div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;      }</div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;    }</div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;  }</div><div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160;</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01432"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#aaf14976ad1ee614c844075d685fc527b"> 1432</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#aaf14976ad1ee614c844075d685fc527b">store_with_byte_offset</a>(</div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;    <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#acd54606d757015b77519e3a4b8491b37">Fragment</a> <span class="keyword">const</span> &amp;frag,                       </div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160;    <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a2fc7c23f777567b6b738dcaf0e253298">Index</a> byte_offset)<span class="keyword"> const </span>{                  </div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;    store_with_pointer_offset(byte_offset / <span class="keyword">sizeof</span>(Element));</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;  }</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;</div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01441"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a2fa057ddebf35f274734157ed88200d1"> 1441</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a2fa057ddebf35f274734157ed88200d1">store</a>(</div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;    <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#acd54606d757015b77519e3a4b8491b37">Fragment</a> &amp;frag,                             </div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;    <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a78c676d890fa2e0cf42b762bb03eb227">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset)<span class="keyword"> const </span>{     </div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160;</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;    store(frag, tile_offset, 0);</div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;  }</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;</div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01450"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#ac6cf576c40b2b2a1126f2cf27c9738f8"> 1450</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#ac6cf576c40b2b2a1126f2cf27c9738f8">store</a>(</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#acd54606d757015b77519e3a4b8491b37">Fragment</a> <span class="keyword">const</span> &amp;frag,</div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a78c676d890fa2e0cf42b762bb03eb227">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset,</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a2fc7c23f777567b6b738dcaf0e253298">Index</a> pointer_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;    store_with_pointer_offset(frag, ref_.<a class="code" href="classcutlass_1_1TensorRef.html#a4166ac2a0754574ac21d5d57d74f34e5">offset</a>(tile_offset) + pointer_offset);</div><div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;  }</div><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;};</div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;</div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;<span class="keyword">template</span> &lt;</div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;    <span class="keyword">typename</span> Shape_,</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;    Operand Operand_,</div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;    <span class="keyword">typename</span> Element_,</div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;    <span class="keyword">typename</span> InstructionShape_,</div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160;    <span class="keywordtype">int</span> OpDelta_,</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;    <span class="keywordtype">int</span> KBlock&gt;</div><div class="line"><a name="l01482"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html"> 1482</a></span>&#160;<span class="keyword">class </span><a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a>&lt;</div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160;    Shape_, Operand_, Element_,</div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160;    <a class="code" href="namespacecutlass.html">cutlass</a>::<a class="code" href="structcutlass_1_1layout_1_1VoltaTensorOpMultiplicandCrosswise.html">layout::VoltaTensorOpMultiplicandCrosswise</a>&lt;</div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;        sizeof_bits&lt;Element_&gt;::value, KBlock&gt;,</div><div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160;    InstructionShape_, OpDelta_, 32&gt; {</div><div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l01489"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#ad957733e890dc4b4c7aaf7aac33ee37c"> 1489</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#ad957733e890dc4b4c7aaf7aac33ee37c">Shape</a> = Shape_;</div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;</div><div class="line"><a name="l01492"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a51237d9841c0cb7172ad51743a327bb5"> 1492</a></span>&#160;  <span class="keyword">static</span> Operand <span class="keyword">const</span> kOperand = Operand_;</div><div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;</div><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;  <a class="code" href="platform_8h.html#adde4c9ea91b753491851361a4198c009">static_assert</a>(kOperand == <a class="code" href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6a30f767aa191cd5d261e767fd78393607">Operand::kA</a> || kOperand == <a class="code" href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6a3e56c011b37f0bc78fb9eb175c1181c6">Operand::kB</a>,</div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;                <span class="stringliteral">&quot;MmaVoltaTensorOpMultiplicandIterator may only be instantiated for &quot;</span></div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;                <span class="stringliteral">&quot;A or B operands to warp-level Mma.&quot;</span>);</div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;</div><div class="line"><a name="l01499"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a745b9d54a92394d525c6f4fa05432834"> 1499</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a745b9d54a92394d525c6f4fa05432834">Element</a> = Element_;</div><div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;</div><div class="line"><a name="l01502"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a62c2d35000a63bca53391a0eab7e2e1c"> 1502</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kKBlock = KBlock;</div><div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;</div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;  <span class="keyword">using</span> <a class="code" href="structcutlass_1_1layout_1_1VoltaTensorOpMultiplicandCrosswise.html">Layout</a> = <a class="code" href="structcutlass_1_1layout_1_1VoltaTensorOpMultiplicandCrosswise.html">cutlass::layout::VoltaTensorOpMultiplicandCrosswise</a>&lt;</div><div class="line"><a name="l01506"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#aad2cda3df238417d24b17a7826723be8"> 1506</a></span>&#160;      <a class="code" href="structcutlass_1_1sizeof__bits.html">sizeof_bits&lt;Element_&gt;::value</a>, kKBlock&gt;;</div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;</div><div class="line"><a name="l01509"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a2c060728c43544ae3986db19e789d75e"> 1509</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a2c060728c43544ae3986db19e789d75e">InstructionShape</a> = InstructionShape_;</div><div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;</div><div class="line"><a name="l01513"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#af6dcd64c14f4fa5b849535f9e6732752"> 1513</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kOpDelta = OpDelta_;</div><div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;</div><div class="line"><a name="l01516"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a7157fa9ef858a8a232bb9ee50c0b1c47"> 1516</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kThreads = 32;</div><div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160;</div><div class="line"><a name="l01519"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#af867768e97efa7f00ab05a776de6d6d3"> 1519</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#af867768e97efa7f00ab05a776de6d6d3">TensorRef</a> = <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef&lt;Element, Layout&gt;</a>;</div><div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;</div><div class="line"><a name="l01522"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a03dac22a2e5fd81fd0838a4376c4819d"> 1522</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a03dac22a2e5fd81fd0838a4376c4819d">Index</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#a11ec4b07a2132e647ca2ebe5112ce5ec">TensorRef::Index</a>;</div><div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160;</div><div class="line"><a name="l01525"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a89a7b481a74de5bc5fa29ee1d1925d27"> 1525</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a89a7b481a74de5bc5fa29ee1d1925d27">LongIndex</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#adeada5e33b231f125a4aaeaf963bd3a3">TensorRef::LongIndex</a>;</div><div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160;</div><div class="line"><a name="l01528"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#afdb90c99d9830b8cdad5548ca2146af3"> 1528</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#afdb90c99d9830b8cdad5548ca2146af3">TensorCoord</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#ace218cdb46555a46bd71dbdfc2c317c1">TensorRef::TensorCoord</a>;</div><div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;</div><div class="line"><a name="l01531"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operafa294175b280756dd8388f9ffe7b72c4.html"> 1531</a></span>&#160;  <span class="keyword">struct </span>Policy {</div><div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160;</div><div class="line"><a name="l01534"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operafa294175b280756dd8388f9ffe7b72c4.html#aa4d35de13746a7faeaa527cc5905344f"> 1534</a></span>&#160;    <span class="keyword">using</span> <a class="code" href="structcutlass_1_1layout_1_1PitchLinearShape.html">LdsShape</a> = <a class="code" href="structcutlass_1_1layout_1_1PitchLinearShape.html">layout::PitchLinearShape&lt;1, 32&gt;</a>;</div><div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160;</div><div class="line"><a name="l01537"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operafa294175b280756dd8388f9ffe7b72c4.html#ae2e710c2cd5c735062eef6da0a99ab9a"> 1537</a></span>&#160;    <span class="keyword">using</span> <a class="code" href="structcutlass_1_1layout_1_1PitchLinearShape.html">LdsIterations</a> = <a class="code" href="structcutlass_1_1layout_1_1PitchLinearShape.html">layout::PitchLinearShape</a>&lt;1, Shape::kStrided / 32&gt;;</div><div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160;</div><div class="line"><a name="l01540"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operafa294175b280756dd8388f9ffe7b72c4.html#a9f16b3a97439a83a010077a02a19d31b"> 1540</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kElementsPerAccess = 8;</div><div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;</div><div class="line"><a name="l01543"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operafa294175b280756dd8388f9ffe7b72c4.html#a4dfe26c4948b1c0a930127359f8fbf30"> 1543</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kContiguousElementsPerLine = 4;</div><div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160;  };</div><div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160;</div><div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;  <a class="code" href="platform_8h.html#adde4c9ea91b753491851361a4198c009">static_assert</a>(kOpDelta == 1,</div><div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160;                <span class="stringliteral">&quot;Alternative arrangements not supported at present.&quot;</span>);</div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160;</div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a> = <a class="code" href="classcutlass_1_1AlignedArray.html">AlignedArray&lt;Element, Policy::kElementsPerAccess&gt;</a>;</div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;</div><div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160;  <span class="comment">//</span></div><div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160;  <span class="comment">// Derived quantities</span></div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;  <span class="comment">//</span></div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;</div><div class="line"><a name="l01560"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a3a2ffe3c15142cc6345e02445d2e5256"> 1560</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a3a2ffe3c15142cc6345e02445d2e5256">Fragment</a> = Array&lt;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a745b9d54a92394d525c6f4fa05432834">Element</a>, Shape::kCount / kThreads * 2&gt;;</div><div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160;</div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;</div><div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a03dac22a2e5fd81fd0838a4376c4819d">Index</a> stride_;</div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;  <a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a> <span class="keyword">const</span> *pointer_;</div><div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;</div><div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a03dac22a2e5fd81fd0838a4376c4819d">Index</a> byte_offset_;</div><div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160;</div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a03dac22a2e5fd81fd0838a4376c4819d">Index</a> line_size;</div><div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160;</div><div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160;  <span class="keywordtype">int</span> k_group_idx_;</div><div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;</div><div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01584"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#acd45d009ee45b0b4d0b7370e1cd1f087"> 1584</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#acd45d009ee45b0b4d0b7370e1cd1f087">MmaVoltaTensorOpMultiplicandTileIterator</a>()</div><div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160;      : pointer_(<a class="code" href="platform_8h.html#ab979d9d4b4923f7c54d6caa6e1a61936">nullptr</a>),</div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;        stride_(0),</div><div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160;        line_size(0),</div><div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;        byte_offset_(0),</div><div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160;        k_group_idx_(0) {}</div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;</div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01593"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#ac1ee4a04df22d2d24d1a4eaf2e8cca89"> 1593</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#ac1ee4a04df22d2d24d1a4eaf2e8cca89">MmaVoltaTensorOpMultiplicandTileIterator</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#af867768e97efa7f00ab05a776de6d6d3">TensorRef</a> <span class="keyword">const</span> &amp;ref, <span class="keywordtype">int</span> lane_id)</div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;      : pointer_(reinterpret_cast&lt;<a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a> const *&gt;(ref.data())),</div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;        stride_(ref.stride(0) * Policy::kElementsPerAccess),</div><div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160;        line_size((ref.stride(0) * Policy::kContiguousElementsPerLine) /</div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;                  Policy::kElementsPerAccess),</div><div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;        k_group_idx_(0),</div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;        byte_offset_(0) {</div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;</div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;    <span class="keywordtype">int</span> quad = (lane_id / 4);</div><div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;    <span class="keywordtype">int</span> lane_in_quad = (lane_id % 4);</div><div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160;    <span class="keywordtype">int</span> access_contiguous;</div><div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;</div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;    <span class="keywordflow">if</span>(kOperand == <a class="code" href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6a30f767aa191cd5d261e767fd78393607">Operand::kA</a>) {</div><div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;</div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;      <span class="comment">// swizzle id: tid[4]|tid[1:0]|(tid[2]^tid[4])</span></div><div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;      access_contiguous = ((quad &amp; 0x4) &lt;&lt; 1) + ((lane_in_quad) &lt;&lt; 1) +</div><div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;                            ((quad &amp; 0x1) ^ ((quad &amp; 0x4) &gt;&gt; 2));</div><div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160;</div><div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160;      <span class="comment">// swizzle id: tid[4]|tid[1:0]|tid[3]</span></div><div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160;      access_contiguous = ((quad &amp; 0x4) &lt;&lt; 1) + (lane_in_quad &lt;&lt; 1) +</div><div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160;                            ((quad &amp; 0x2) &gt;&gt; 1 ^ ((quad &amp; 0x4) &gt;&gt; 2));</div><div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160;    }</div><div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160;</div><div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;    byte_offset_ = access_contiguous *</div><div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160;                   <span class="keyword">sizeof</span>(Element) * Policy::kElementsPerAccess;</div><div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;  }</div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160;</div><div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01623"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a54cea7a93a7b945f09052fb5184c0aef"> 1623</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a54cea7a93a7b945f09052fb5184c0aef">add_pointer_offset</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a89a7b481a74de5bc5fa29ee1d1925d27">LongIndex</a> offset) {</div><div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160;    byte_offset_ += offset * <span class="keyword">sizeof</span>(Element);</div><div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160;</div><div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160;  }</div><div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;</div><div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01632"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a5e7cdf520c47ae3eb3271e4a744c8e82"> 1632</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a5e7cdf520c47ae3eb3271e4a744c8e82">add_tile_offset</a>(</div><div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#afdb90c99d9830b8cdad5548ca2146af3">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;</div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;    <span class="keywordtype">int</span> contiguous_offset = tile_offset.contiguous();</div><div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;    <span class="keywordtype">int</span> strided_offset = tile_offset.strided();</div><div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;    k_group_idx_ = 0;</div><div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;</div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;    pointer_ += contiguous_offset *</div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;                    (InstructionShape::kContiguous /</div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;                     Policy::kContiguousElementsPerLine) *</div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;                    line_size +</div><div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160;                strided_offset * Shape::kStrided / 2;</div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;  }</div><div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;</div><div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01649"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a75ea2d47c7a8fbec0a359736777b4a46"> 1649</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a75ea2d47c7a8fbec0a359736777b4a46">operator++</a>() {</div><div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160;    k_group_idx_ = (k_group_idx_ + 1) % 8;</div><div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;</div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;    <span class="keywordflow">if</span> (k_group_idx_ == 4 || k_group_idx_ == 0) {</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;      byte_offset_ ^= 1 * <span class="keyword">sizeof</span>(Element) * Policy::kElementsPerAccess;</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;    }</div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;</div><div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;    pointer_ += line_size;</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;  }</div><div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;</div><div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01662"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a79ebd8c200848da932f1de7abd7adb3c"> 1662</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a79ebd8c200848da932f1de7abd7adb3c">operator--</a>() { assert(0); }</div><div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160;</div><div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01667"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#aa4c1c2d490a62ea8f742b88d281d7630"> 1667</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#aa4c1c2d490a62ea8f742b88d281d7630">operator+=</a>(</div><div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#afdb90c99d9830b8cdad5548ca2146af3">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160;    add_tile_offset(tile_offset);</div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;  }</div><div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;</div><div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01676"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#ac52e7b70d38ab7f0d071eee0730b21ab"> 1676</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#ac52e7b70d38ab7f0d071eee0730b21ab">operator-=</a>(</div><div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#afdb90c99d9830b8cdad5548ca2146af3">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;    add_tile_offset(-tile_offset);</div><div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;  }</div><div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;</div><div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01684"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a6f70a3f52ce4e700ddec23b4d0279e28"> 1684</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a6f70a3f52ce4e700ddec23b4d0279e28">load</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a3a2ffe3c15142cc6345e02445d2e5256">Fragment</a> &amp;frag)<span class="keyword"> const </span>{ load_with_byte_offset(frag, 0); }</div><div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160;</div><div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01688"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a2fed768dc56829db9b0dcd8602931172"> 1688</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a2fed768dc56829db9b0dcd8602931172">load_with_byte_offset</a>(</div><div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a3a2ffe3c15142cc6345e02445d2e5256">Fragment</a> &amp;frag,</div><div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a03dac22a2e5fd81fd0838a4376c4819d">Index</a> byte_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;</div><div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160;    <a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a> * fetch_ptr = <span class="keyword">reinterpret_cast&lt;</span><a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a> *<span class="keyword">&gt;</span>(&amp;frag);</div><div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160;</div><div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;    <a class="code" href="cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4">CUTLASS_PRAGMA_UNROLL</a></div><div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> s = 0; s &lt; Policy::LdsIterations::kStrided; ++s) {</div><div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160;</div><div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160;      <a class="code" href="cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4">CUTLASS_PRAGMA_UNROLL</a></div><div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;      <span class="keywordflow">for</span> (<span class="keywordtype">int</span> c = 0; c &lt; Policy::LdsIterations::kContiguous; ++c) {</div><div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160;</div><div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160;        <span class="keywordtype">int</span> access_idx = c + s * Policy::LdsIterations::kContiguous;</div><div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160;</div><div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;        <a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a> <span class="keyword">const</span> *source_ptr = pointer_ +</div><div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;          Policy::LdsShape::kContiguous * c * line_size +</div><div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;          Policy::LdsShape::kStrided * s / 2;</div><div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160;</div><div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;        <span class="keywordtype">char</span> <span class="keyword">const</span> *source_byte_ptr = <span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">char</span> <span class="keyword">const </span>*<span class="keyword">&gt;</span>(source_ptr) + byte_offset + byte_offset_;</div><div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160;        fetch_ptr[access_idx] = *(<span class="keyword">reinterpret_cast&lt;</span><a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a> const*<span class="keyword">&gt;</span> (source_byte_ptr));</div><div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160;</div><div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160;        <span class="comment">// swap higher 64bit and lower 64bit</span></div><div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160;        <span class="keywordflow">if</span> (k_group_idx_ &amp;  0x2) {</div><div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160;            uint64_t *low = <span class="keyword">reinterpret_cast&lt;</span>uint64_t *<span class="keyword">&gt;</span>(&amp;frag) + access_idx * 2;</div><div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160;            uint64_t *high = <span class="keyword">reinterpret_cast&lt;</span>uint64_t *<span class="keyword">&gt;</span>(&amp;frag) + access_idx * 2 + 1;</div><div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160;            uint64_t tmp = *low;</div><div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160;            *low = *high;</div><div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160;            *high = tmp;</div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160;        }</div><div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160;      }</div><div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160;    }</div><div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160;  }</div><div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160;</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01725"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a2077809dab15c411f95d893766106f0c"> 1725</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a2077809dab15c411f95d893766106f0c">load_with_pointer_offset</a>(</div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a3a2ffe3c15142cc6345e02445d2e5256">Fragment</a> &amp;frag,</div><div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a03dac22a2e5fd81fd0838a4376c4819d">Index</a> pointer_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;    load_with_byte_offset(frag, pointer_offset * <span class="keyword">sizeof</span>(Element));</div><div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160;  }</div><div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160;</div><div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01735"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a7ae9181632f916c6966e956cf5594fef"> 1735</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a7ae9181632f916c6966e956cf5594fef">load</a>(</div><div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a3a2ffe3c15142cc6345e02445d2e5256">Fragment</a> &amp;frag,</div><div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#afdb90c99d9830b8cdad5548ca2146af3">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;    load_with_byte_offset(frag, tile_offset, 0);</div><div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;  }</div><div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160;</div><div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01745"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a7fedc3e454f2ffbce639ab6477a9a4bc"> 1745</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a7fedc3e454f2ffbce639ab6477a9a4bc">load</a>(</div><div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a3a2ffe3c15142cc6345e02445d2e5256">Fragment</a> &amp;frag,</div><div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#afdb90c99d9830b8cdad5548ca2146af3">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset,</div><div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a03dac22a2e5fd81fd0838a4376c4819d">Index</a> pointer_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;    load_with_byte_offset(frag, tile_offset, pointer_offset * <span class="keyword">sizeof</span>(Element));</div><div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;  }</div><div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160;</div><div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01757"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a83f492a80d5df1170a5d3f3cb3bf9783"> 1757</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a83f492a80d5df1170a5d3f3cb3bf9783">load_with_byte_offset</a>(</div><div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a3a2ffe3c15142cc6345e02445d2e5256">Fragment</a> &amp;frag,</div><div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#afdb90c99d9830b8cdad5548ca2146af3">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset,</div><div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a03dac22a2e5fd81fd0838a4376c4819d">Index</a> byte_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;    <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a03dac22a2e5fd81fd0838a4376c4819d">Index</a> pointer_offset = tile_offset.contiguous() *</div><div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160;                               InstructionShape::kContiguous /</div><div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;                               Policy::kElementsPerAccess +</div><div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160;                           tile_offset.strided() * Shape::kStrided * stride_;</div><div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160;</div><div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;    byte_offset += <span class="keyword">sizeof</span>(<a class="code" href="classcutlass_1_1AlignedArray.html">AccessType</a>) * pointer_offset;</div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;</div><div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160;    load_with_byte_offset(frag, byte_offset);</div><div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160;  }</div><div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160;</div><div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01782"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a97aca32d267edb64a97ad652a1de8ef8"> 1782</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a97aca32d267edb64a97ad652a1de8ef8">set_kgroup_index</a>(<span class="keywordtype">int</span> k_group) {</div><div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160;    k_group_idx_ = k_group;</div><div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160;  }</div><div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160;};</div><div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160;</div><div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160;<span class="keyword">template</span> &lt;</div><div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160;    <span class="keyword">typename</span> Shape_,</div><div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160;    Operand Operand_,</div><div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160;    <span class="keyword">typename</span> Element_,</div><div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;    <span class="keyword">typename</span> InstructionShape_,</div><div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160;    <span class="keywordtype">int</span> OpDelta_,</div><div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160;    <span class="keywordtype">int</span> KBlock&gt;</div><div class="line"><a name="l01808"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html"> 1808</a></span>&#160;<span class="keyword">class </span><a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a>&lt;</div><div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160;    Shape_, Operand_, Element_,</div><div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160;    <a class="code" href="namespacecutlass.html">cutlass</a>::<a class="code" href="structcutlass_1_1layout_1_1ColumnMajorVoltaTensorOpMultiplicandCrosswise.html">layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise</a>&lt;</div><div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160;        sizeof_bits&lt;Element_&gt;::value, KBlock&gt;,</div><div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160;    InstructionShape_, OpDelta_, 32&gt; {</div><div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l01815"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ad4dc31d981dc806fdb330defdca333cd"> 1815</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ad4dc31d981dc806fdb330defdca333cd">Shape</a> = Shape_;</div><div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160;</div><div class="line"><a name="l01818"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a25d138b231130ecd7f3c518826730066"> 1818</a></span>&#160;  <span class="keyword">static</span> Operand <span class="keyword">const</span> kOperand = Operand_;</div><div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160;</div><div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160;  <a class="code" href="platform_8h.html#adde4c9ea91b753491851361a4198c009">static_assert</a>(kOperand == <a class="code" href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6a30f767aa191cd5d261e767fd78393607">Operand::kA</a> || kOperand == <a class="code" href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6a3e56c011b37f0bc78fb9eb175c1181c6">Operand::kB</a>,</div><div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160;                <span class="stringliteral">&quot;MmaTensorOpMultiplicandIterator may only be instantiated for &quot;</span></div><div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160;                <span class="stringliteral">&quot;A or B operands to warp-level Mma.&quot;</span>);</div><div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160;</div><div class="line"><a name="l01825"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a6d0cce4ef30ab95e28ee11ed1aca83a8"> 1825</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a6d0cce4ef30ab95e28ee11ed1aca83a8">Element</a> = Element_;</div><div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;</div><div class="line"><a name="l01828"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a533fcb05c82297c360ce2b025530c287"> 1828</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kKBlock = KBlock;</div><div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160;</div><div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160;</div><div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160;  <span class="keyword">using</span> <a class="code" href="structcutlass_1_1layout_1_1ColumnMajorVoltaTensorOpMultiplicandCrosswise.html">Layout</a> = <a class="code" href="structcutlass_1_1layout_1_1ColumnMajorVoltaTensorOpMultiplicandCrosswise.html">cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise</a>&lt;</div><div class="line"><a name="l01833"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a91e8c28b2e72b1de20bc80eafd8df966"> 1833</a></span>&#160;      <a class="code" href="structcutlass_1_1sizeof__bits.html">sizeof_bits&lt;Element_&gt;::value</a>, kKBlock&gt;;</div><div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160;</div><div class="line"><a name="l01836"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a21877ac7be6b023f10658bd3f74d08dc"> 1836</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a21877ac7be6b023f10658bd3f74d08dc">InstructionShape</a> = InstructionShape_;</div><div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160;</div><div class="line"><a name="l01840"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a3d48d66b98780f92c75ff1f7eff8a937"> 1840</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kOpDelta = OpDelta_;</div><div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160;</div><div class="line"><a name="l01843"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a4c646f3044367f33d7478f2ef1dcdb5e"> 1843</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kThreads = 32;</div><div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160;</div><div class="line"><a name="l01846"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a9c02c81187b64e121a2c90fc99bc520c"> 1846</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef</a> = <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef&lt;Element, Layout&gt;</a>;</div><div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160;</div><div class="line"><a name="l01849"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a0be745dc08b570ca7f102ce17592463c"> 1849</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a0be745dc08b570ca7f102ce17592463c">Index</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#a11ec4b07a2132e647ca2ebe5112ce5ec">TensorRef::Index</a>;</div><div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160;</div><div class="line"><a name="l01852"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a2408b63b278b7a738c95fa89209ddd11"> 1852</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a2408b63b278b7a738c95fa89209ddd11">LongIndex</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#adeada5e33b231f125a4aaeaf963bd3a3">TensorRef::LongIndex</a>;</div><div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160;</div><div class="line"><a name="l01855"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ab69f85d9f3484bce845a8feafefe9ad3"> 1855</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ab69f85d9f3484bce845a8feafefe9ad3">TensorCoord</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#ace218cdb46555a46bd71dbdfc2c317c1">TensorRef::TensorCoord</a>;</div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160;</div><div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">Base</a> = <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a>&lt;</div><div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160;      <a class="code" href="structcutlass_1_1layout_1_1PitchLinearShape.html">layout::PitchLinearShape&lt;Shape::kRow, Shape::kColumn&gt;</a>, kOperand, <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a6d0cce4ef30ab95e28ee11ed1aca83a8">Element</a>,</div><div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160;      <a class="code" href="structcutlass_1_1layout_1_1VoltaTensorOpMultiplicandCrosswise.html">layout::VoltaTensorOpMultiplicandCrosswise&lt;sizeof_bits&lt;Element_&gt;::value</a>,</div><div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160;                                                 kKBlock&gt;,</div><div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160;      <a class="code" href="structcutlass_1_1layout_1_1PitchLinearShape.html">layout::PitchLinearShape</a>&lt;InstructionShape::kRow,</div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;                               InstructionShape::kColumn&gt;,</div><div class="line"><a name="l01864"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ae619ae19915d8b45d59e5793ae677cfa"> 1864</a></span>&#160;      kOpDelta, kThreads&gt;;</div><div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160;</div><div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160;  <span class="comment">//</span></div><div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;  <span class="comment">// Derived quantities</span></div><div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160;  <span class="comment">//</span></div><div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160;</div><div class="line"><a name="l01872"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#af99286febf2c6c64d267dfc8fab282dc"> 1872</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#af99286febf2c6c64d267dfc8fab282dc">Fragment</a> = Array&lt;Element, Shape::kCount / kThreads * 2&gt;;</div><div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160;</div><div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">Base</a> iterator_;</div><div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160;</div><div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01881"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#afe593cef1052582e08ea8dd0a5778b05"> 1881</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#afe593cef1052582e08ea8dd0a5778b05">MmaVoltaTensorOpMultiplicandTileIterator</a>() {}</div><div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160;</div><div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01885"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a7a6f4590fa188e7353c8e742b030f9e5"> 1885</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a7a6f4590fa188e7353c8e742b030f9e5">MmaVoltaTensorOpMultiplicandTileIterator</a>(<a class="code" href="classcutlass_1_1TensorRef.html">TensorRef</a> <span class="keyword">const</span> &amp;ref, <span class="keywordtype">int</span> lane_id)</div><div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160;      : iterator_({ref.<a class="code" href="classcutlass_1_1TensorRef.html#ac7db3ca62ab1dfe0d3ea08bcadbc9352">data</a>(), ref.<a class="code" href="classcutlass_1_1TensorRef.html#a191e88bc0fb310be655d700e937ab97c">stride</a>()}, lane_id) {}</div><div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;</div><div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01890"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ad7c28da0ba9c028c02ae6dbe613e3f6c"> 1890</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ad7c28da0ba9c028c02ae6dbe613e3f6c">add_pointer_offset</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a2408b63b278b7a738c95fa89209ddd11">LongIndex</a> offset) {</div><div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;    iterator_.add_pointer_offset(offset);</div><div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160;</div><div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160;  }</div><div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160;</div><div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01899"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a95df0722c90fccfc6e069af2a5d18c9f"> 1899</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a95df0722c90fccfc6e069af2a5d18c9f">add_tile_offset</a>(</div><div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ab69f85d9f3484bce845a8feafefe9ad3">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160;    iterator_.add_tile_offset({tile_offset.row(), tile_offset.column()});</div><div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160;</div><div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160;  }</div><div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160;</div><div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01908"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a670d4132ca27fcd64f3d7e9eef192b7c"> 1908</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a670d4132ca27fcd64f3d7e9eef192b7c">operator++</a>() {</div><div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160;    ++iterator_;</div><div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160;</div><div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160;  }</div><div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160;</div><div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01916"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ab1c2a3d187a87f69f218be46c0d91e48"> 1916</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ab1c2a3d187a87f69f218be46c0d91e48">operator--</a>() {</div><div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160;    --iterator_;</div><div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160;</div><div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160;  }</div><div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160;</div><div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01925"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ab25abf8b419fe5aa8d2ff0993859cd6c"> 1925</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ab25abf8b419fe5aa8d2ff0993859cd6c">operator+=</a>(</div><div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ab69f85d9f3484bce845a8feafefe9ad3">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160;    add_tile_offset(PitchLinearCoord(tile_offset.row(), tile_offset.column()));</div><div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160;  }</div><div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160;</div><div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01934"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a59083f63ea63934c727af2d2afc5ea98"> 1934</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a59083f63ea63934c727af2d2afc5ea98">operator-=</a>(</div><div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ab69f85d9f3484bce845a8feafefe9ad3">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160;    add_tile_offset(-PitchLinearCoord(tile_offset.row(), tile_offset.column()));</div><div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160;  }</div><div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160;</div><div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l01942"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a483350b04218a200d8323f87fb0a8ad4"> 1942</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a483350b04218a200d8323f87fb0a8ad4">load</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#af99286febf2c6c64d267dfc8fab282dc">Fragment</a> &amp;frag)<span class="keyword"> const </span>{ iterator_.load(frag); }</div><div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160;</div><div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01946"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ad30f89112afa148f8827e4e4ee58d7d1"> 1946</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ad30f89112afa148f8827e4e4ee58d7d1">load_with_pointer_offset</a>(</div><div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#af99286febf2c6c64d267dfc8fab282dc">Fragment</a> &amp;frag,</div><div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a0be745dc08b570ca7f102ce17592463c">Index</a> pointer_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160;    iterator_.load_with_pointer_offset(frag, pointer_offset);</div><div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160;  }</div><div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160;</div><div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01956"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ab665c36434c159d203fc7585252fa90c"> 1956</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ab665c36434c159d203fc7585252fa90c">load_with_byte_offset</a>(</div><div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#af99286febf2c6c64d267dfc8fab282dc">Fragment</a> &amp;frag,</div><div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a0be745dc08b570ca7f102ce17592463c">Index</a> byte_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160;    iterator_.load_with_byte_offset(frag, byte_offset);</div><div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160;  }</div><div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160;</div><div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01966"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a4c6e5d0361417bb9a1600d61378d6c55"> 1966</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a4c6e5d0361417bb9a1600d61378d6c55">load</a>(</div><div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#af99286febf2c6c64d267dfc8fab282dc">Fragment</a> &amp;frag,</div><div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ab69f85d9f3484bce845a8feafefe9ad3">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160;    <span class="comment">// TODO</span></div><div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160;    assert(0);</div><div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160;  }</div><div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160;</div><div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01977"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#aca0fce90ebb322d0d8b3b882306ae635"> 1977</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#aca0fce90ebb322d0d8b3b882306ae635">load</a>(</div><div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#af99286febf2c6c64d267dfc8fab282dc">Fragment</a> &amp;frag,</div><div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ab69f85d9f3484bce845a8feafefe9ad3">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset,</div><div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a0be745dc08b570ca7f102ce17592463c">Index</a> pointer_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160;    <span class="comment">// TODO</span></div><div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160;    assert(0);</div><div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160;  }</div><div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160;</div><div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l01990"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#af6e8687cd4567e0d4e62601a049eadc3"> 1990</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#af6e8687cd4567e0d4e62601a049eadc3">load_with_byte_offset</a>(</div><div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#af99286febf2c6c64d267dfc8fab282dc">Fragment</a> &amp;frag,</div><div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ab69f85d9f3484bce845a8feafefe9ad3">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset,</div><div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a0be745dc08b570ca7f102ce17592463c">Index</a> byte_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160;    iterator_.load_with_byte_offset(</div><div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160;        frag, {tile_offset.contiguous(), tile_offset.strided()}, byte_offset);</div><div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160;  }</div><div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160;</div><div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l02009"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a56158b62a236429277f5fa73f2ea99b3"> 2009</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a56158b62a236429277f5fa73f2ea99b3">set_kgroup_index</a>(<span class="keywordtype">int</span> k_group) {</div><div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160;    iterator_.set_kgroup_index(k_group); </div><div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160;  }</div><div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160;};</div><div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160;</div><div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160;</div><div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160;<span class="keyword">template</span> &lt;</div><div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160;    <span class="keyword">typename</span> Shape_,</div><div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160;    Operand Operand_,</div><div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160;    <span class="keyword">typename</span> Element_,</div><div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160;    <span class="keyword">typename</span> InstructionShape_,</div><div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160;    <span class="keywordtype">int</span> OpDelta_,</div><div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160;    <span class="keywordtype">int</span> KBlock&gt;</div><div class="line"><a name="l02037"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html"> 2037</a></span>&#160;<span class="keyword">class </span><a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a>&lt;</div><div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160;    Shape_, Operand_, Element_,</div><div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160;    <a class="code" href="namespacecutlass.html">cutlass</a>::<a class="code" href="structcutlass_1_1layout_1_1RowMajorVoltaTensorOpMultiplicandCrosswise.html">layout::RowMajorVoltaTensorOpMultiplicandCrosswise</a>&lt;</div><div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160;        sizeof_bits&lt;Element_&gt;::value, KBlock&gt;,</div><div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160;    InstructionShape_, OpDelta_, 32&gt; {</div><div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l02044"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a2910c6ca0b4bd3fa82d055198b37372b"> 2044</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a2910c6ca0b4bd3fa82d055198b37372b">Shape</a> = Shape_;</div><div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160;</div><div class="line"><a name="l02047"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#aacd4eb73cc5258154460d46a4a80c1b0"> 2047</a></span>&#160;  <span class="keyword">static</span> Operand <span class="keyword">const</span> kOperand = Operand_;</div><div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160;</div><div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160;  <a class="code" href="platform_8h.html#adde4c9ea91b753491851361a4198c009">static_assert</a>(kOperand == <a class="code" href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6a30f767aa191cd5d261e767fd78393607">Operand::kA</a> || kOperand == <a class="code" href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6a3e56c011b37f0bc78fb9eb175c1181c6">Operand::kB</a>,</div><div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160;                <span class="stringliteral">&quot;MmaTensorOpMultiplicandIterator may only be instantiated for &quot;</span></div><div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160;                <span class="stringliteral">&quot;A or B operands to warp-level Mma.&quot;</span>);</div><div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160;</div><div class="line"><a name="l02054"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#afcccb6ac74d08706ecd58f431baa26ad"> 2054</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#afcccb6ac74d08706ecd58f431baa26ad">Element</a> = Element_;</div><div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160;</div><div class="line"><a name="l02057"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a2244908970938c5af5d2e55df8e8820e"> 2057</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kKBlock = KBlock;</div><div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160;</div><div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160;  <span class="keyword">using</span> <a class="code" href="structcutlass_1_1layout_1_1RowMajorVoltaTensorOpMultiplicandCrosswise.html">Layout</a> = <a class="code" href="structcutlass_1_1layout_1_1RowMajorVoltaTensorOpMultiplicandCrosswise.html">cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise</a>&lt;</div><div class="line"><a name="l02061"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a8033f46ad0858c1f27dec25622fff990"> 2061</a></span>&#160;      <a class="code" href="structcutlass_1_1sizeof__bits.html">sizeof_bits&lt;Element_&gt;::value</a>, kKBlock&gt;;</div><div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160;</div><div class="line"><a name="l02064"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a4fca090ed65e8579f6870a7765e46e3e"> 2064</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a4fca090ed65e8579f6870a7765e46e3e">InstructionShape</a> = InstructionShape_;</div><div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160;</div><div class="line"><a name="l02068"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a4ac25976530fae30688e647efbeb44b1"> 2068</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kOpDelta = OpDelta_;</div><div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160;</div><div class="line"><a name="l02071"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a2b7f29ccb0a5eace9b4628d6a1b04c13"> 2071</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kThreads = 32;</div><div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160;</div><div class="line"><a name="l02074"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a11b27d01c4858d893acd5d25e582b0ad"> 2074</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef</a> = <a class="code" href="classcutlass_1_1TensorRef.html">TensorRef&lt;Element, Layout&gt;</a>;</div><div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160;</div><div class="line"><a name="l02077"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#afe1ba1cb70dce011a62f8304f8494230"> 2077</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#afe1ba1cb70dce011a62f8304f8494230">Index</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#a11ec4b07a2132e647ca2ebe5112ce5ec">TensorRef::Index</a>;</div><div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160;</div><div class="line"><a name="l02080"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a2f7d43791644b737de765245eb3d60ef"> 2080</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a2f7d43791644b737de765245eb3d60ef">LongIndex</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#adeada5e33b231f125a4aaeaf963bd3a3">TensorRef::LongIndex</a>;</div><div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160;</div><div class="line"><a name="l02083"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a981e7e12e89871e035ab59143f6660f1"> 2083</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a981e7e12e89871e035ab59143f6660f1">TensorCoord</a> = <span class="keyword">typename</span> <a class="code" href="classcutlass_1_1TensorRef.html#ace218cdb46555a46bd71dbdfc2c317c1">TensorRef::TensorCoord</a>;</div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160;</div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">Base</a> = <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a>&lt;</div><div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160;      <a class="code" href="structcutlass_1_1layout_1_1PitchLinearShape.html">layout::PitchLinearShape&lt;Shape::kColumn, Shape::kRow&gt;</a>, kOperand, <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#afcccb6ac74d08706ecd58f431baa26ad">Element</a>,</div><div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160;      <a class="code" href="structcutlass_1_1layout_1_1VoltaTensorOpMultiplicandCrosswise.html">layout::VoltaTensorOpMultiplicandCrosswise&lt;sizeof_bits&lt;Element_&gt;::value</a>,</div><div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160;                                                 kKBlock&gt;,</div><div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160;      <a class="code" href="structcutlass_1_1layout_1_1PitchLinearShape.html">layout::PitchLinearShape</a>&lt;InstructionShape::kColumn,</div><div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160;                               InstructionShape::kRow&gt;,</div><div class="line"><a name="l02092"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a38a52b712c92dc68384501d415cc4538"> 2092</a></span>&#160;      kOpDelta, kThreads&gt;;</div><div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160;</div><div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;  <span class="comment">//</span></div><div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160;  <span class="comment">// Derived quantities</span></div><div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160;  <span class="comment">//</span></div><div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160;</div><div class="line"><a name="l02100"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#ad3629b3b4b0293d9eca05397077d8626"> 2100</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#ad3629b3b4b0293d9eca05397077d8626">Fragment</a> = Array&lt;Element, Shape::kCount / kThreads * 2&gt;;</div><div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160;</div><div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">Base</a> iterator_;</div><div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160;</div><div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l02109"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#aec92afa74fd54e54518a56a84cb85014"> 2109</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#aec92afa74fd54e54518a56a84cb85014">MmaVoltaTensorOpMultiplicandTileIterator</a>() {}</div><div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160;</div><div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l02113"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#ac86a65d3aec0b83fc689c14e3fb7e647"> 2113</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#ac86a65d3aec0b83fc689c14e3fb7e647">MmaVoltaTensorOpMultiplicandTileIterator</a>(<a class="code" href="classcutlass_1_1TensorRef.html">TensorRef</a> <span class="keyword">const</span> &amp;ref, <span class="keywordtype">int</span> lane_id)</div><div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160;      : iterator_({ref.<a class="code" href="classcutlass_1_1TensorRef.html#ac7db3ca62ab1dfe0d3ea08bcadbc9352">data</a>(), ref.<a class="code" href="classcutlass_1_1TensorRef.html#a191e88bc0fb310be655d700e937ab97c">stride</a>()}, lane_id) {}</div><div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160;</div><div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l02118"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#ad0881c3d0738ab49e2dca15362640235"> 2118</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#ad0881c3d0738ab49e2dca15362640235">add_pointer_offset</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a2f7d43791644b737de765245eb3d60ef">LongIndex</a> offset) {</div><div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160;    iterator_.add_pointer_offset(offset);</div><div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160;</div><div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160;  }</div><div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;</div><div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l02127"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a22dddf2c5e488e700baed2ee7c389b45"> 2127</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a22dddf2c5e488e700baed2ee7c389b45">add_tile_offset</a>(</div><div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a981e7e12e89871e035ab59143f6660f1">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160;    iterator_.add_tile_offset({tile_offset.column(), tile_offset.row()});</div><div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160;</div><div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160;  }</div><div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160;</div><div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l02136"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a0d18d3d63940b906fdd1ab48c4b2799a"> 2136</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a0d18d3d63940b906fdd1ab48c4b2799a">operator++</a>() {</div><div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160;    ++iterator_;</div><div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160;</div><div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160;  }</div><div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160;</div><div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l02144"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#aab514462e6a1799ccdb7fffaa0d10601"> 2144</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#aab514462e6a1799ccdb7fffaa0d10601">operator--</a>() {</div><div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160;    --iterator_;</div><div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160;</div><div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;  }</div><div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160;</div><div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l02153"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#ac1e657b6f0e2e671d2c5c2d66a95e904"> 2153</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#ac1e657b6f0e2e671d2c5c2d66a95e904">operator+=</a>(</div><div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a981e7e12e89871e035ab59143f6660f1">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160;    add_tile_offset(PitchLinearCoord(tile_offset.column(), tile_offset.row()));</div><div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160;  }</div><div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160;</div><div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l02162"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a73efe1a38ac07d8c1bd72a72fed00b57"> 2162</a></span>&#160;  <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">MmaVoltaTensorOpMultiplicandTileIterator</a> &amp;<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a73efe1a38ac07d8c1bd72a72fed00b57">operator-=</a>(</div><div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a981e7e12e89871e035ab59143f6660f1">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset) {</div><div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160;    add_tile_offset(-PitchLinearCoord(tile_offset.column(), tile_offset.row()));</div><div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160;  }</div><div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160;</div><div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160;  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l02170"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#abd0486af7ec0d3c8e50418fe614b0d4f"> 2170</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#abd0486af7ec0d3c8e50418fe614b0d4f">load</a>(<a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#ad3629b3b4b0293d9eca05397077d8626">Fragment</a> &amp;frag)<span class="keyword"> const </span>{ iterator_.load(frag); }</div><div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160;</div><div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l02174"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a84ec2d63c1898188aab44b9a577e5241"> 2174</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a84ec2d63c1898188aab44b9a577e5241">load_with_pointer_offset</a>(</div><div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#ad3629b3b4b0293d9eca05397077d8626">Fragment</a> &amp;frag,</div><div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#afe1ba1cb70dce011a62f8304f8494230">Index</a> pointer_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160;    iterator_.load_with_pointer_offset(frag, pointer_offset);</div><div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160;  }</div><div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160;</div><div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l02184"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a47cd238e52ec513ba4483b49acada849"> 2184</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a47cd238e52ec513ba4483b49acada849">load_with_byte_offset</a>(</div><div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#ad3629b3b4b0293d9eca05397077d8626">Fragment</a> &amp;frag,</div><div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#afe1ba1cb70dce011a62f8304f8494230">Index</a> byte_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160;    iterator_.load_with_byte_offset(frag, byte_offset);</div><div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160;  }</div><div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160;</div><div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l02194"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#ae660c67504a60be98aeebac2c6b7c4f3"> 2194</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#ae660c67504a60be98aeebac2c6b7c4f3">load</a>(</div><div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#ad3629b3b4b0293d9eca05397077d8626">Fragment</a> &amp;frag,</div><div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a981e7e12e89871e035ab59143f6660f1">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160;    <span class="comment">// TODO</span></div><div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160;    assert(0);</div><div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160;  }</div><div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160;</div><div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l02205"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#af4d4e99c869cb7fb4d982ca22146a0bc"> 2205</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#af4d4e99c869cb7fb4d982ca22146a0bc">load</a>(</div><div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#ad3629b3b4b0293d9eca05397077d8626">Fragment</a> &amp;frag,</div><div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a981e7e12e89871e035ab59143f6660f1">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset,</div><div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#afe1ba1cb70dce011a62f8304f8494230">Index</a> pointer_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160;    <span class="comment">// TODO</span></div><div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160;    assert(0);</div><div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160;  }</div><div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160;</div><div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l02218"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a1c8d4172863530df51eb04577a7d1dec"> 2218</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a1c8d4172863530df51eb04577a7d1dec">load_with_byte_offset</a>(</div><div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#ad3629b3b4b0293d9eca05397077d8626">Fragment</a> &amp;frag,</div><div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a981e7e12e89871e035ab59143f6660f1">TensorCoord</a> <span class="keyword">const</span> &amp;tile_offset,</div><div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160;      <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#afe1ba1cb70dce011a62f8304f8494230">Index</a> byte_offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160;    iterator_.load_with_byte_offset(</div><div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160;        frag, {tile_offset.strided(), tile_offset.contiguous()}, byte_offset);</div><div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160;  }</div><div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160;  </div><div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>&#160;  CUTLASS_DEVICE</div><div class="line"><a name="l02237"></a><span class="lineno"><a class="line" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a928503563ad00903fcd72146baa25bcc"> 2237</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a928503563ad00903fcd72146baa25bcc">set_kgroup_index</a>(<span class="keywordtype">int</span> k_group) {</div><div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160;    iterator_.set_kgroup_index(k_group); </div><div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>&#160;  }</div><div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160;};</div><div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160;</div><div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160;} <span class="comment">// namespace warp</span></div><div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160;} <span class="comment">// namespace gemm</span></div><div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160;} <span class="comment">// namespace cutlass</span></div><div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160;</div><div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_a6d159862172d1716b11418ddc5bc93fc"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a6d159862172d1716b11418ddc5bc93fc">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::load</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void load(Fragment &amp;frag, TensorCoord const &amp;tile_offset, Index pointer_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1369</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321_html_ae660c67504a60be98aeebac2c6b7c4f3"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#ae660c67504a60be98aeebac2c6b7c4f3">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::load</a></div><div class="ttdeci">CUTLASS_DEVICE void load(Fragment &amp;frag, TensorCoord const &amp;tile_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2194</div></div>
<div class="ttc" id="structcutlass_1_1layout_1_1RowMajorVoltaTensorOpMultiplicandBCongruous_html"><div class="ttname"><a href="structcutlass_1_1layout_1_1RowMajorVoltaTensorOpMultiplicandBCongruous.html">cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous</a></div><div class="ttdoc">Template mapping a row-major view of pitch-linear memory to VoltaTensorOpMultiplicandCongruous. </div><div class="ttdef"><b>Definition:</b> tensor_op_multiplicand_sm70.h:630</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2_html_a561d838825c39ba946afc2125dcc9fe0"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a561d838825c39ba946afc2125dcc9fe0">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator-=</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator-=(TensorCoord const &amp;tile_offset)</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1031</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72_html_a21c2fa0fc65c51bb16fa9f6ddad1eda4"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a21c2fa0fc65c51bb16fa9f6ddad1eda4">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator++</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator++()</div><div class="ttdoc">Advances the iterator along the advance dimension. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:254</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72_html_a8f1c4c6671f1b6a4dce2445338b2dcb7"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a8f1c4c6671f1b6a4dce2445338b2dcb7">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load_with_byte_offset</a></div><div class="ttdeci">CUTLASS_DEVICE void load_with_byte_offset(Fragment &amp;frag, TensorCoord const &amp;tile_offset, Index byte_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:353</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72_html_ac142fe3da9848fa6c477eb87b567e062"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ac142fe3da9848fa6c477eb87b567e062">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::MmaVoltaTensorOpMultiplicandTileIterator</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator(TensorRef const &amp;ref, int lane_id)</div><div class="ttdoc">Constructor from TensorRef. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:189</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501_html_a8b5d7a05b12dd435a6acb4e598643cd1"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a8b5d7a05b12dd435a6acb4e598643cd1">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator++</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator++()</div><div class="ttdoc">Advances the iterator along the advance dimension. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:539</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72_html_a277ded643a7fedaa7cdc17f2e0ed5a5c"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a277ded643a7fedaa7cdc17f2e0ed5a5c">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::TensorCoord</a></div><div class="ttdeci">typename TensorRef::TensorCoord TensorCoord</div><div class="ttdoc">Coordinate for an element in the tensor. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:127</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_ac3e514d9c671bff4053be3a535713ddc"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#ac3e514d9c671bff4053be3a535713ddc">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::LongIndex</a></div><div class="ttdeci">typename TensorRef::LongIndex LongIndex</div><div class="ttdoc">Long Index type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1166</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321_html_afe1ba1cb70dce011a62f8304f8494230"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#afe1ba1cb70dce011a62f8304f8494230">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::Index</a></div><div class="ttdeci">typename TensorRef::Index Index</div><div class="ttdoc">Index type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2077</div></div>
<div class="ttc" id="structcutlass_1_1MatrixShape_html"><div class="ttname"><a href="structcutlass_1_1MatrixShape.html">cutlass::MatrixShape</a></div><div class="ttdoc">Describes the size of a matrix tile. </div><div class="ttdef"><b>Definition:</b> matrix_shape.h:42</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343_html_a7d8453d7701d5a41b517e877e202187a"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a7d8453d7701d5a41b517e877e202187a">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load_with_pointer_offset</a></div><div class="ttdeci">CUTLASS_DEVICE void load_with_pointer_offset(Fragment &amp;frag, Index pointer_offset) const </div><div class="ttdoc">Loads a fragment from memory with additional logical offset. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:821</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321_html_a4fca090ed65e8579f6870a7765e46e3e"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a4fca090ed65e8579f6870a7765e46e3e">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::InstructionShape</a></div><div class="ttdeci">InstructionShape_ InstructionShape</div><div class="ttdoc">Shape of one matrix product operation (concept: MatrixShape) </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2064</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_ab907fdc0fef5042e740e24d7dc4e59b7"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#ab907fdc0fef5042e740e24d7dc4e59b7">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::InstructionShape</a></div><div class="ttdeci">InstructionShape_ InstructionShape</div><div class="ttdoc">Shape of one matrix product operation (concept: MatrixShape) </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1151</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321_html_a2910c6ca0b4bd3fa82d055198b37372b"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a2910c6ca0b4bd3fa82d055198b37372b">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::Shape</a></div><div class="ttdeci">Shape_ Shape</div><div class="ttdoc">Shape of tile to load (concept: PitchLinearShape) </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2044</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_html"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator.html">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator</a></div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:70</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501_html_a3cb3d779d8063f1f1e9ccb9a2d8ae7bf"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a3cb3d779d8063f1f1e9ccb9a2d8ae7bf">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::LongIndex</a></div><div class="ttdeci">typename TensorRef::LongIndex LongIndex</div><div class="ttdoc">Long Index type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:436</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501_html_a76247b67fb13501888b1461cecc05b62"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a76247b67fb13501888b1461cecc05b62">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load</a></div><div class="ttdeci">CUTLASS_DEVICE void load(Fragment &amp;frag, TensorCoord const &amp;tile_offset, Index pointer_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:626</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72_html_aae34807a2f795d57a71a0661182cdb6a"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#aae34807a2f795d57a71a0661182cdb6a">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator-=</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator-=(TensorCoord const &amp;tile_offset)</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:279</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_ac6cf576c40b2b2a1126f2cf27c9738f8"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#ac6cf576c40b2b2a1126f2cf27c9738f8">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::store</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void store(Fragment const &amp;frag, TensorCoord const &amp;tile_offset, Index pointer_offset) const </div><div class="ttdoc">Stores a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1450</div></div>
<div class="ttc" id="namespacecutlass_html"><div class="ttname"><a href="namespacecutlass.html">cutlass</a></div><div class="ttdef"><b>Definition:</b> aligned_buffer.h:35</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2_html_a8eb60b70495618293bd218736ae54f86"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a8eb60b70495618293bd218736ae54f86">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load_with_pointer_offset</a></div><div class="ttdeci">CUTLASS_DEVICE void load_with_pointer_offset(Fragment &amp;frag, Index pointer_offset) const </div><div class="ttdoc">Loads a fragment from memory with additional logical offset. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1045</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2_html_a348b537e5cdfe105400ad1a66f20e6b4"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a348b537e5cdfe105400ad1a66f20e6b4">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::Fragment</a></div><div class="ttdeci">Array&lt; Element, Shape::kCount/kThreads *2 &gt; Fragment</div><div class="ttdoc">Fragment object holding a thread&amp;#39;s part of a tile. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:965</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2_html_a7c27b972639b99fcb4b7865d2294f214"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a7c27b972639b99fcb4b7865d2294f214">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::LongIndex</a></div><div class="ttdeci">typename TensorRef::LongIndex LongIndex</div><div class="ttdoc">Long Index type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:945</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321_html_abd0486af7ec0d3c8e50418fe614b0d4f"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#abd0486af7ec0d3c8e50418fe614b0d4f">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::load</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void load(Fragment &amp;frag) const </div><div class="ttdoc">Loads a fragment from memory at the location pointed to by the iterator. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2170</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942_html_ab25abf8b419fe5aa8d2ff0993859cd6c"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ab25abf8b419fe5aa8d2ff0993859cd6c">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator+=</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator+=(TensorCoord const &amp;tile_offset)</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1925</div></div>
<div class="ttc" id="tensor__ref_8h_html"><div class="ttname"><a href="tensor__ref_8h.html">tensor_ref.h</a></div><div class="ttdoc">Defines a structure containing strides, bounds, and a pointer to tensor data. </div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_a97aca32d267edb64a97ad652a1de8ef8"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a97aca32d267edb64a97ad652a1de8ef8">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::set_kgroup_index</a></div><div class="ttdeci">CUTLASS_DEVICE void set_kgroup_index(int k_group)</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1782</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2_html_a3e386fc8b9fa4715b3ed437f85695b4a"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a3e386fc8b9fa4715b3ed437f85695b4a">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::MmaVoltaTensorOpMultiplicandTileIterator</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator(TensorRef const &amp;ref, int lane_id)</div><div class="ttdoc">Constructor from TensorRef. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:980</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501_html_a2ca3e91dcd8ab5b8a002d7d979ce0a3c"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a2ca3e91dcd8ab5b8a002d7d979ce0a3c">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load_with_pointer_offset</a></div><div class="ttdeci">CUTLASS_DEVICE void load_with_pointer_offset(Fragment &amp;frag, Index pointer_offset) const </div><div class="ttdoc">Loads a fragment from memory with additional logical offset. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:606</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_a66d8214a8290a5f32774177dbe8866ef"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a66d8214a8290a5f32774177dbe8866ef">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::OpDelta</a></div><div class="ttdeci">OpDelta_ OpDelta</div><div class="ttdoc">Delta between *MMA operations (in units of *MMA operations, concept: MatrixShape) ...</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1154</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_a3a2ffe3c15142cc6345e02445d2e5256"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a3a2ffe3c15142cc6345e02445d2e5256">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::Fragment</a></div><div class="ttdeci">Array&lt; Element, Shape::kCount/kThreads *2 &gt; Fragment</div><div class="ttdoc">Fragment object holding a thread&amp;#39;s part of a tile. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1560</div></div>
<div class="ttc" id="classcutlass_1_1TensorRef_html_ac7db3ca62ab1dfe0d3ea08bcadbc9352"><div class="ttname"><a href="classcutlass_1_1TensorRef.html#ac7db3ca62ab1dfe0d3ea08bcadbc9352">cutlass::TensorRef::data</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE Element * data() const </div><div class="ttdoc">Returns the pointer to referenced data. </div><div class="ttdef"><b>Definition:</b> tensor_ref.h:254</div></div>
<div class="ttc" id="structcutlass_1_1platform_1_1is__same_html"><div class="ttname"><a href="structcutlass_1_1platform_1_1is__same.html">cutlass::platform::is_same</a></div><div class="ttdoc">std::is_same (false specialization) </div><div class="ttdef"><b>Definition:</b> platform.h:394</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_a9a5997c666e1e5f0dd19e238c4f2307b"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a9a5997c666e1e5f0dd19e238c4f2307b">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::MmaVoltaTensorOpAccumulatorTileIterator</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpAccumulatorTileIterator()</div><div class="ttdoc">Default ctor constructs null iterator. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1224</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343_html_a69792f8dad08e68d141741db9a511d3a"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a69792f8dad08e68d141741db9a511d3a">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::Shape</a></div><div class="ttdeci">Shape_ Shape</div><div class="ttdoc">Shape of tile to load (concept: PitchLinearShape) </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:694</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72_html_ad07c2e732032e98b818b5c9caac88782"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ad07c2e732032e98b818b5c9caac88782">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::Index</a></div><div class="ttdeci">typename TensorRef::Index Index</div><div class="ttdoc">Index type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:121</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_a3135442d51ee6a60d052df8c654fa167"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a3135442d51ee6a60d052df8c654fa167">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::store_with_pointer_offset</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void store_with_pointer_offset(Fragment const &amp;frag, Index pointer_offset) const </div><div class="ttdoc">Stores a fragment to memory with additional pointer offset. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1385</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2_html_a646f6d40a4b8d446aedc0c709a04f9b4"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a646f6d40a4b8d446aedc0c709a04f9b4">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator+=</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator+=(TensorCoord const &amp;tile_offset)</div><div class="ttdoc">advances in units of whole tiles along the logical coordinate space of the tensor ...</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1024</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72_html_a499d86e246b80a13ce5e8c3d4ec07980"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a499d86e246b80a13ce5e8c3d4ec07980">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::MmaVoltaTensorOpMultiplicandTileIterator</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator()</div><div class="ttdoc">Default ctor constructs null iterator. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:185</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2_html_a363ce88e77cbdb4e9f30760899cc6796"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a363ce88e77cbdb4e9f30760899cc6796">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::set_kgroup_index</a></div><div class="ttdeci">CUTLASS_DEVICE void set_kgroup_index(int k_group)</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1108</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_a6d13731e2bfa90431aac91e05f66915c"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a6d13731e2bfa90431aac91e05f66915c">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::load</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void load(Fragment &amp;frag) const </div><div class="ttdoc">Loads a fragment from memory at the location pointed to by the iterator. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1299</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501_html_a0d80bdc010e213b48f1580ec08f943e2"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a0d80bdc010e213b48f1580ec08f943e2">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::Element</a></div><div class="ttdeci">Element_ Element</div><div class="ttdoc">Element type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:415</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72_html_a7a7cb733f78d2c383825695a93803f50"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a7a7cb733f78d2c383825695a93803f50">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::add_pointer_offset</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; add_pointer_offset(LongIndex offset)</div><div class="ttdoc">Adds a pointer offset to internal pointer(s) to advance through memory. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:219</div></div>
<div class="ttc" id="namespacecutlass_html_a7419519fa453a121dfa5f26bf87318d9"><div class="ttname"><a href="namespacecutlass.html#a7419519fa453a121dfa5f26bf87318d9">cutlass::make_Coord</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE Coord&lt; 1 &gt; make_Coord(int _0)</div><div class="ttdoc">Helper to make a 2-element coordinate. </div><div class="ttdef"><b>Definition:</b> coord.h:387</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_a2077809dab15c411f95d893766106f0c"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a2077809dab15c411f95d893766106f0c">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::load_with_pointer_offset</a></div><div class="ttdeci">CUTLASS_DEVICE void load_with_pointer_offset(Fragment &amp;frag, Index pointer_offset) const </div><div class="ttdoc">Loads a fragment from memory with additional logical offset. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1725</div></div>
<div class="ttc" id="namespacecutlass_1_1gemm_html_a34338284023da7403c9ecbd3f406b2a6"><div class="ttname"><a href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6">cutlass::gemm::Operand</a></div><div class="ttdeci">Operand</div><div class="ttdoc">GEMM operand enumeration: D = A * B + C. </div><div class="ttdef"><b>Definition:</b> include/cutlass/gemm/gemm.h:39</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942_html_afe593cef1052582e08ea8dd0a5778b05"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#afe593cef1052582e08ea8dd0a5778b05">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::MmaVoltaTensorOpMultiplicandTileIterator</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator()</div><div class="ttdoc">Default ctor constructs null iterator. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1881</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_a745b9d54a92394d525c6f4fa05432834"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a745b9d54a92394d525c6f4fa05432834">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::Element</a></div><div class="ttdeci">Element_ Element</div><div class="ttdoc">Element type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1499</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2_html_adc0a513d69524b9b58f6fddae5643401"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#adc0a513d69524b9b58f6fddae5643401">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::Element</a></div><div class="ttdeci">Element_ Element</div><div class="ttdoc">Element type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:924</div></div>
<div class="ttc" id="classcutlass_1_1AlignedArray_html"><div class="ttname"><a href="classcutlass_1_1AlignedArray.html">cutlass::AlignedArray</a></div><div class="ttdoc">Aligned array type. </div><div class="ttdef"><b>Definition:</b> array.h:511</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_abf77a8981beee6433afcae3c820719e2"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#abf77a8981beee6433afcae3c820719e2">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::operator--</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpAccumulatorTileIterator &amp; operator--()</div><div class="ttdoc">Advances the iterator along the advance dimension. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1278</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501_html_a7cb7f00d52b9a08c8c36180e1de2ef80"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a7cb7f00d52b9a08c8c36180e1de2ef80">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::TensorCoord</a></div><div class="ttdeci">typename TensorRef::TensorCoord TensorCoord</div><div class="ttdoc">Coordinate for an element in the tensor. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:439</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_a8dc93057f62af4c272f485c1b5d027a3"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a8dc93057f62af4c272f485c1b5d027a3">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::load</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void load(Fragment &amp;frag, TensorCoord const &amp;tile_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1360</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343_html_ab312bab8dc7c2b3b39b193b4a2e0a076"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#ab312bab8dc7c2b3b39b193b4a2e0a076">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::set_kgroup_index</a></div><div class="ttdeci">CUTLASS_DEVICE void set_kgroup_index(int k_group)</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:884</div></div>
<div class="ttc" id="include_2cutlass_2gemm_2gemm_8h_html"><div class="ttname"><a href="include_2cutlass_2gemm_2gemm_8h.html">gemm.h</a></div><div class="ttdoc">Defines common types used for all GEMM-like operators. </div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343_html_adb4c78fa4cedb201d10334748aa1fdc9"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#adb4c78fa4cedb201d10334748aa1fdc9">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator++</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator++()</div><div class="ttdoc">Advances the iterator along the advance dimension. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:782</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942_html_ab69f85d9f3484bce845a8feafefe9ad3"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ab69f85d9f3484bce845a8feafefe9ad3">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::TensorCoord</a></div><div class="ttdeci">typename TensorRef::TensorCoord TensorCoord</div><div class="ttdoc">Coordinate for an element in the tensor. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1855</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_acaf2ce431cba77e8658abe29a37dad1f"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#acaf2ce431cba77e8658abe29a37dad1f">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::add_tile_offset</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpAccumulatorTileIterator &amp; add_tile_offset(TensorCoord const &amp;tile_offset)</div><div class="ttdoc">Advances an iterator along logical dimensions of matrix in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1262</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_acd45d009ee45b0b4d0b7370e1cd1f087"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#acd45d009ee45b0b4d0b7370e1cd1f087">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::MmaVoltaTensorOpMultiplicandTileIterator</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator()</div><div class="ttdoc">Default ctor constructs null iterator. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1584</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_a03dac22a2e5fd81fd0838a4376c4819d"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a03dac22a2e5fd81fd0838a4376c4819d">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::Index</a></div><div class="ttdeci">typename TensorRef::Index Index</div><div class="ttdoc">Index type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1522</div></div>
<div class="ttc" id="structcutlass_1_1layout_1_1ColumnMajorVoltaTensorOpMultiplicandCrosswise_html"><div class="ttname"><a href="structcutlass_1_1layout_1_1ColumnMajorVoltaTensorOpMultiplicandCrosswise.html">cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise</a></div><div class="ttdef"><b>Definition:</b> tensor_op_multiplicand_sm70.h:848</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321_html_a84ec2d63c1898188aab44b9a577e5241"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a84ec2d63c1898188aab44b9a577e5241">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::load_with_pointer_offset</a></div><div class="ttdeci">CUTLASS_DEVICE void load_with_pointer_offset(Fragment &amp;frag, Index pointer_offset) const </div><div class="ttdoc">Loads a fragment from memory with additional logical offset. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2174</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942_html_a6d0cce4ef30ab95e28ee11ed1aca83a8"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a6d0cce4ef30ab95e28ee11ed1aca83a8">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::Element</a></div><div class="ttdeci">Element_ Element</div><div class="ttdoc">Element type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1825</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2_html_a246717a0cb4bbde1e32becac3835b89c"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a246717a0cb4bbde1e32becac3835b89c">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load_with_byte_offset</a></div><div class="ttdeci">CUTLASS_DEVICE void load_with_byte_offset(Fragment &amp;frag, TensorCoord const &amp;tile_offset, Index byte_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1087</div></div>
<div class="ttc" id="platform_8h_html"><div class="ttname"><a href="platform_8h.html">platform.h</a></div><div class="ttdoc">C++ features that may be otherwise unimplemented for CUDA device functions. </div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_a2ea78accad63178308845b9d4e757465"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a2ea78accad63178308845b9d4e757465">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::MmaVoltaTensorOpAccumulatorTileIterator</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpAccumulatorTileIterator(TensorRef const &amp;ref, int lane_id)</div><div class="ttdoc">Constructor from TensorRef. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1228</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942_html_ab665c36434c159d203fc7585252fa90c"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ab665c36434c159d203fc7585252fa90c">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::load_with_byte_offset</a></div><div class="ttdeci">CUTLASS_DEVICE void load_with_byte_offset(Fragment &amp;frag, Index byte_offset) const </div><div class="ttdoc">Loads a fragment from memory with additional logical offset. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1956</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_a78c676d890fa2e0cf42b762bb03eb227"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a78c676d890fa2e0cf42b762bb03eb227">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::TensorCoord</a></div><div class="ttdeci">typename TensorRef::TensorCoord TensorCoord</div><div class="ttdoc">Coordinate for an element in the tensor. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1169</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_a2fed768dc56829db9b0dcd8602931172"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a2fed768dc56829db9b0dcd8602931172">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::load_with_byte_offset</a></div><div class="ttdeci">CUTLASS_DEVICE void load_with_byte_offset(Fragment &amp;frag, Index byte_offset) const </div><div class="ttdoc">Loads a fragment from memory with additional logical offset. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1688</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_a1f4fce885f0c011704b89375ab18fec8"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a1f4fce885f0c011704b89375ab18fec8">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::operator++</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpAccumulatorTileIterator &amp; operator++()</div><div class="ttdoc">Advances the iterator along the advance dimension. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1271</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_acd54606d757015b77519e3a4b8491b37"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#acd54606d757015b77519e3a4b8491b37">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::Fragment</a></div><div class="ttdeci">Array&lt; Element, Shape::kCount/kThreads &gt; Fragment</div><div class="ttdoc">Fragment object holding a thread&amp;#39;s part of a tile. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1213</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501_html_a6ec156711b46716ee21290d211bc5967"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a6ec156711b46716ee21290d211bc5967">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::add_tile_offset</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; add_tile_offset(TensorCoord const &amp;tile_offset)</div><div class="ttdoc">Advances an iterator along logical dimensions of matrix in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:523</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_ab4ce693e7f3d9ad052292cc51c6c7957"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#ab4ce693e7f3d9ad052292cc51c6c7957">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::Shape</a></div><div class="ttdeci">Shape_ Shape</div><div class="ttdoc">Shape of tile to load (concept: MatrixShape) </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1139</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72_html_a4572c3eeb9bfd02c8033b53bd698991e"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a4572c3eeb9bfd02c8033b53bd698991e">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void load(Fragment &amp;frag) const </div><div class="ttdoc">Loads a fragment from memory at the location pointed to by the iterator. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:286</div></div>
<div class="ttc" id="classcutlass_1_1TensorRef_html_a4bed879c428963070de8ffbdc5d6e4f9"><div class="ttname"><a href="classcutlass_1_1TensorRef.html#a4bed879c428963070de8ffbdc5d6e4f9">cutlass::TensorRef::add_coord_offset</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE TensorRef &amp; add_coord_offset(TensorCoord const &amp;coord)</div><div class="ttdoc">Adds an offset to each pointer. </div><div class="ttdef"><b>Definition:</b> tensor_ref.h:326</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_ac772f25bc37f9ebc9c21097492217960"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#ac772f25bc37f9ebc9c21097492217960">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::add_pointer_offset</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpAccumulatorTileIterator &amp; add_pointer_offset(LongIndex offset)</div><div class="ttdoc">Adds a pointer offset to internal pointer(s) to advance through memory. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1255</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_abf4e5b0263508ed800ee2c2a57e65c3a"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#abf4e5b0263508ed800ee2c2a57e65c3a">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::store</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void store(Fragment const &amp;frag) const </div><div class="ttdoc">Stores a fragment to memory. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1379</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343_html_ac920b9ce72a6e473dc7da0c55592d515"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#ac920b9ce72a6e473dc7da0c55592d515">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator--</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator--()</div><div class="ttdoc">Advances the iterator along the advance dimension. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:791</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343_html_a2eae25791f7973945d760fcae0f35cf7"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a2eae25791f7973945d760fcae0f35cf7">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator-=</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator-=(TensorCoord const &amp;tile_offset)</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:807</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942_html_a4c6e5d0361417bb9a1600d61378d6c55"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a4c6e5d0361417bb9a1600d61378d6c55">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::load</a></div><div class="ttdeci">CUTLASS_DEVICE void load(Fragment &amp;frag, TensorCoord const &amp;tile_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1966</div></div>
<div class="ttc" id="structcutlass_1_1layout_1_1PitchLinearShape_html"><div class="ttname"><a href="structcutlass_1_1layout_1_1PitchLinearShape.html">cutlass::layout::PitchLinearShape</a></div><div class="ttdoc">Template defining a shape used by pitch-linear operators. </div><div class="ttdef"><b>Definition:</b> pitch_linear.h:43</div></div>
<div class="ttc" id="array_8h_html"><div class="ttname"><a href="array_8h.html">array.h</a></div><div class="ttdoc">Statically sized array of elements that accommodates all CUTLASS-supported numeric types and is safe ...</div></div>
<div class="ttc" id="namespacecutlass_1_1gemm_html_a34338284023da7403c9ecbd3f406b2a6af73b7a14626c25aa554e2437ea3fc1df"><div class="ttname"><a href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6af73b7a14626c25aa554e2437ea3fc1df">cutlass::gemm::Operand::kC</a></div><div class="ttdoc">B multiplicand. </div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501_html_a68d2f239ff185b0245a3fe219776341c"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a68d2f239ff185b0245a3fe219776341c">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::Fragment</a></div><div class="ttdeci">Array&lt; Element, Shape::kCount/kThreads *2 &gt; Fragment</div><div class="ttdoc">Fragment object holding a thread&amp;#39;s part of a tile, needs on more time number of registers. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:476</div></div>
<div class="ttc" id="cutlass_8h_html_a4b1c9f25ab6eaa25e1f2258dd63e6ce4"><div class="ttname"><a href="cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4">CUTLASS_PRAGMA_UNROLL</a></div><div class="ttdeci">#define CUTLASS_PRAGMA_UNROLL</div><div class="ttdef"><b>Definition:</b> cutlass.h:110</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2_html_a4cbfc44c1eac4ae4fd6571455b7b503d"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a4cbfc44c1eac4ae4fd6571455b7b503d">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator++</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator++()</div><div class="ttdoc">Advances the iterator along the advance dimension. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1006</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942_html_a21877ac7be6b023f10658bd3f74d08dc"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a21877ac7be6b023f10658bd3f74d08dc">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::InstructionShape</a></div><div class="ttdeci">InstructionShape_ InstructionShape</div><div class="ttdoc">Shape of one matrix product operation (concept: MatrixShape) </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1836</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_aa4c1c2d490a62ea8f742b88d281d7630"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#aa4c1c2d490a62ea8f742b88d281d7630">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator+=</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator+=(TensorCoord const &amp;tile_offset)</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1667</div></div>
<div class="ttc" id="namespacecutlass_1_1gemm_html_a34338284023da7403c9ecbd3f406b2a6a30f767aa191cd5d261e767fd78393607"><div class="ttname"><a href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6a30f767aa191cd5d261e767fd78393607">cutlass::gemm::Operand::kA</a></div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343_html_add7e4e5c9dbfb389f64bdecdf0889e74"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#add7e4e5c9dbfb389f64bdecdf0889e74">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::Fragment</a></div><div class="ttdeci">Array&lt; Element, Shape::kCount/kThreads *2 &gt; Fragment</div><div class="ttdoc">Fragment object holding a thread&amp;#39;s part of a tile. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:741</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_a96ce4cf07ba15f3d14a78db2c90e9dba"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a96ce4cf07ba15f3d14a78db2c90e9dba">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::Element</a></div><div class="ttdeci">Element_ Element</div><div class="ttdoc">Element type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1145</div></div>
<div class="ttc" id="classcutlass_1_1TensorRef_html_a191e88bc0fb310be655d700e937ab97c"><div class="ttname"><a href="classcutlass_1_1TensorRef.html#a191e88bc0fb310be655d700e937ab97c">cutlass::TensorRef::stride</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE Stride stride() const </div><div class="ttdoc">Returns the layout object&amp;#39;s stride vector. </div><div class="ttdef"><b>Definition:</b> tensor_ref.h:277</div></div>
<div class="ttc" id="classcutlass_1_1TensorRef_html_ace218cdb46555a46bd71dbdfc2c317c1"><div class="ttname"><a href="classcutlass_1_1TensorRef.html#ace218cdb46555a46bd71dbdfc2c317c1">cutlass::TensorRef::TensorCoord</a></div><div class="ttdeci">typename Layout::TensorCoord TensorCoord</div><div class="ttdoc">Coordinate in logical tensor space. </div><div class="ttdef"><b>Definition:</b> tensor_ref.h:171</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72_html_a41ea626da30ce2007fe3bfeb299460ca"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a41ea626da30ce2007fe3bfeb299460ca">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::Fragment</a></div><div class="ttdeci">Array&lt; Element, Shape::kCount/kThreads *2 &gt; Fragment</div><div class="ttdoc">Fragment object holding a thread&amp;#39;s part of a tile. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:168</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_a2e77e28efc5efcb411258d4e55c63a4e"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a2e77e28efc5efcb411258d4e55c63a4e">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::operator-=</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpAccumulatorTileIterator &amp; operator-=(TensorCoord const &amp;tile_offset)</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1292</div></div>
<div class="ttc" id="matrix__shape_8h_html"><div class="ttname"><a href="matrix__shape_8h.html">matrix_shape.h</a></div><div class="ttdoc">Defines a Shape template for matrix tiles. </div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72_html_ad262c03181b674266af1daa43162ef8e"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ad262c03181b674266af1daa43162ef8e">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator--</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator--()</div><div class="ttdoc">Advances the iterator along the advance dimension. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:263</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2_html_a6c04618a770059846c166c51f11800a4"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a6c04618a770059846c166c51f11800a4">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void load(Fragment &amp;frag) const </div><div class="ttdoc">Loads a fragment from memory at the location pointed to by the iterator. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1038</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942_html_a2408b63b278b7a738c95fa89209ddd11"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a2408b63b278b7a738c95fa89209ddd11">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::LongIndex</a></div><div class="ttdeci">typename TensorRef::LongIndex LongIndex</div><div class="ttdoc">Long Index type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1852</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942_html_a59083f63ea63934c727af2d2afc5ea98"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a59083f63ea63934c727af2d2afc5ea98">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator-=</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator-=(TensorCoord const &amp;tile_offset)</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1934</div></div>
<div class="ttc" id="structcutlass_1_1sizeof__bits_html"><div class="ttname"><a href="structcutlass_1_1sizeof__bits.html">cutlass::sizeof_bits</a></div><div class="ttdoc">Defines the size of an element in bits. </div><div class="ttdef"><b>Definition:</b> numeric_types.h:42</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343_html_af527f0fc64c4b200a82e8826db791423"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#af527f0fc64c4b200a82e8826db791423">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load_with_byte_offset</a></div><div class="ttdeci">CUTLASS_DEVICE void load_with_byte_offset(Fragment &amp;frag, Index byte_offset) const </div><div class="ttdoc">Loads a fragment from memory with additional logical offset. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:831</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942_html_ad4dc31d981dc806fdb330defdca333cd"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ad4dc31d981dc806fdb330defdca333cd">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::Shape</a></div><div class="ttdeci">Shape_ Shape</div><div class="ttdoc">Shape of tile to load (concept: PitchLinearShape) </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1815</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2_html_a6ffbe61c91df0f25007ed465787f9e5c"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a6ffbe61c91df0f25007ed465787f9e5c">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load_with_byte_offset</a></div><div class="ttdeci">CUTLASS_DEVICE void load_with_byte_offset(Fragment &amp;frag, Index byte_offset) const </div><div class="ttdoc">Loads a fragment from memory with additional logical offset. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1055</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72_html_ad26a9261cb7216ab9d1ee2e1cacbe2a7"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ad26a9261cb7216ab9d1ee2e1cacbe2a7">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::add_tile_offset</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; add_tile_offset(TensorCoord const &amp;tile_offset)</div><div class="ttdoc">Advances an iterator along logical dimensions of matrix in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:228</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343_html_a72f221f2cb137b42d609d9d392cddcd7"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a72f221f2cb137b42d609d9d392cddcd7">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::InstructionShape</a></div><div class="ttdeci">InstructionShape_ InstructionShape</div><div class="ttdoc">Shape of one matrix product operation (concept: MatrixShape) </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:706</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501_html_a170dc47832a0e4e2a2d4c95ee1408931"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a170dc47832a0e4e2a2d4c95ee1408931">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator--</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator--()</div><div class="ttdoc">Advances the iterator along the advance dimension. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:548</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321_html_a73efe1a38ac07d8c1bd72a72fed00b57"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a73efe1a38ac07d8c1bd72a72fed00b57">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator-=</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator-=(TensorCoord const &amp;tile_offset)</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2162</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501_html_a5814d73aaa2b962e77d024ba4b2c5d95"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a5814d73aaa2b962e77d024ba4b2c5d95">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load</a></div><div class="ttdeci">CUTLASS_DEVICE void load(Fragment &amp;frag, TensorCoord const &amp;tile_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:616</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343_html_a6443a420c3718fda835000b1e4411230"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a6443a420c3718fda835000b1e4411230">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load</a></div><div class="ttdeci">CUTLASS_DEVICE void load(Fragment &amp;frag, TensorCoord const &amp;tile_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:841</div></div>
<div class="ttc" id="platform_8h_html_ab979d9d4b4923f7c54d6caa6e1a61936"><div class="ttname"><a href="platform_8h.html#ab979d9d4b4923f7c54d6caa6e1a61936">nullptr</a></div><div class="ttdeci">#define nullptr</div><div class="ttdoc">nullptr </div><div class="ttdef"><b>Definition:</b> platform.h:144</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_a6f70a3f52ce4e700ddec23b4d0279e28"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a6f70a3f52ce4e700ddec23b4d0279e28">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::load</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void load(Fragment &amp;frag) const </div><div class="ttdoc">Loads a fragment from memory at the location pointed to by the iterator. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1684</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343_html_aba989c98c040d2b54287cfcbd629535f"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#aba989c98c040d2b54287cfcbd629535f">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::MmaVoltaTensorOpMultiplicandTileIterator</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator(TensorRef const &amp;ref, int lane_id)</div><div class="ttdoc">Constructor from TensorRef. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:756</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2_html_a04b771d2fe6ce4f48f833b8afac8cd00"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a04b771d2fe6ce4f48f833b8afac8cd00">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::TensorCoord</a></div><div class="ttdeci">typename TensorRef::TensorCoord TensorCoord</div><div class="ttdoc">Coordinate for an element in the tensor. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:948</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72_html_af63f1ab82c68bd2eeed4639e3e2b0290"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#af63f1ab82c68bd2eeed4639e3e2b0290">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load</a></div><div class="ttdeci">CUTLASS_DEVICE void load(Fragment &amp;frag, TensorCoord const &amp;tile_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:331</div></div>
<div class="ttc" id="classcutlass_1_1TensorRef_html"><div class="ttname"><a href="classcutlass_1_1TensorRef.html">cutlass::TensorRef&lt; Element, Layout &gt;</a></div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343_html_a45b740f17537739f2bfd9441229ae8c3"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a45b740f17537739f2bfd9441229ae8c3">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::MmaVoltaTensorOpMultiplicandTileIterator</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator()</div><div class="ttdoc">Default ctor constructs null iterator. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:752</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72_html_af86e30cc649534cdc5b754d6cb7177f2"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#af86e30cc649534cdc5b754d6cb7177f2">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load_with_byte_offset</a></div><div class="ttdeci">CUTLASS_DEVICE void load_with_byte_offset(Fragment &amp;frag, Index byte_offset) const </div><div class="ttdoc">Loads a fragment from memory with additional logical offset. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:293</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501_html_a719ef6becc48d7b2f35bffc781bc946f"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a719ef6becc48d7b2f35bffc781bc946f">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::InstructionShape</a></div><div class="ttdeci">InstructionShape_ InstructionShape</div><div class="ttdoc">Shape of one matrix product operation (concept: GemmShape) </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:421</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942_html_a7a6f4590fa188e7353c8e742b030f9e5"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a7a6f4590fa188e7353c8e742b030f9e5">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::MmaVoltaTensorOpMultiplicandTileIterator</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator(TensorRef const &amp;ref, int lane_id)</div><div class="ttdoc">Constructor from TensorRef. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1885</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_ad957733e890dc4b4c7aaf7aac33ee37c"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#ad957733e890dc4b4c7aaf7aac33ee37c">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::Shape</a></div><div class="ttdeci">Shape_ Shape</div><div class="ttdoc">Shape of tile to load (concept: PitchLinearShape) </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1489</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2_html_a7bd1a6f3bffc4d67434dbd03a70eec55"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a7bd1a6f3bffc4d67434dbd03a70eec55">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::MmaVoltaTensorOpMultiplicandTileIterator</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator()</div><div class="ttdoc">Default ctor constructs null iterator. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:976</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942_html_ad7c28da0ba9c028c02ae6dbe613e3f6c"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ad7c28da0ba9c028c02ae6dbe613e3f6c">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::add_pointer_offset</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; add_pointer_offset(LongIndex offset)</div><div class="ttdoc">Adds a pointer offset to internal pointer(s) to advance through memory. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1890</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2_html_a312937f6d421b038e4c391fad45647cb"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a312937f6d421b038e4c391fad45647cb">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load</a></div><div class="ttdeci">CUTLASS_DEVICE void load(Fragment &amp;frag, TensorCoord const &amp;tile_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1065</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501_html_a00851f20451d82ddc6430360cadd650f"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a00851f20451d82ddc6430360cadd650f">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::Shape</a></div><div class="ttdeci">Shape_ Shape</div><div class="ttdoc">Shape of tile to load (concept: PitchLinearShape) </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:409</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_ac52e7b70d38ab7f0d071eee0730b21ab"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#ac52e7b70d38ab7f0d071eee0730b21ab">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator-=</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator-=(TensorCoord const &amp;tile_offset)</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1676</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343_html_a226402c19b486c0424b8ac6d8ef21409"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a226402c19b486c0424b8ac6d8ef21409">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator+=</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator+=(TensorCoord const &amp;tile_offset)</div><div class="ttdoc">advances in units of whole tiles along the logical coordinate space of the tensor ...</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:800</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321_html_ad0881c3d0738ab49e2dca15362640235"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#ad0881c3d0738ab49e2dca15362640235">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::add_pointer_offset</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; add_pointer_offset(LongIndex offset)</div><div class="ttdoc">Adds a pointer offset to internal pointer(s) to advance through memory. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2118</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942_html_a95df0722c90fccfc6e069af2a5d18c9f"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a95df0722c90fccfc6e069af2a5d18c9f">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::add_tile_offset</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; add_tile_offset(TensorCoord const &amp;tile_offset)</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1899</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_a279a159ec2eec9a474465aa8365c643c"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a279a159ec2eec9a474465aa8365c643c">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::load_with_pointer_offset</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void load_with_pointer_offset(Fragment &amp;frag, Index pointer_offset) const </div><div class="ttdoc">Loads a fragment from memory with additional logical offset. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1305</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_a83f492a80d5df1170a5d3f3cb3bf9783"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a83f492a80d5df1170a5d3f3cb3bf9783">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::load_with_byte_offset</a></div><div class="ttdeci">CUTLASS_DEVICE void load_with_byte_offset(Fragment &amp;frag, TensorCoord const &amp;tile_offset, Index byte_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1757</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_afdb90c99d9830b8cdad5548ca2146af3"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#afdb90c99d9830b8cdad5548ca2146af3">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::TensorCoord</a></div><div class="ttdeci">typename TensorRef::TensorCoord TensorCoord</div><div class="ttdoc">Coordinate for an element in the tensor. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1528</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942_html_a56158b62a236429277f5fa73f2ea99b3"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a56158b62a236429277f5fa73f2ea99b3">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::set_kgroup_index</a></div><div class="ttdeci">CUTLASS_DEVICE void set_kgroup_index(int k_group)</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2009</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321_html_a981e7e12e89871e035ab59143f6660f1"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a981e7e12e89871e035ab59143f6660f1">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::TensorCoord</a></div><div class="ttdeci">typename TensorRef::TensorCoord TensorCoord</div><div class="ttdoc">Coordinate for an element in the tensor. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2083</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343_html_afffcb7e663e505117294da4896e4ad34"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#afffcb7e663e505117294da4896e4ad34">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::Index</a></div><div class="ttdeci">typename TensorRef::Index Index</div><div class="ttdoc">Index type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:718</div></div>
<div class="ttc" id="structcutlass_1_1layout_1_1VoltaTensorOpMultiplicandBCongruous_html"><div class="ttname"><a href="structcutlass_1_1layout_1_1VoltaTensorOpMultiplicandBCongruous.html">cutlass::layout::VoltaTensorOpMultiplicandBCongruous</a></div><div class="ttdoc">Template based on element size (in bits) - defined in terms of pitch-linear memory. </div><div class="ttdef"><b>Definition:</b> tensor_op_multiplicand_sm70.h:397</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501_html_ad3244c12457461bd2f21035b202016d3"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#ad3244c12457461bd2f21035b202016d3">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator-=</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator-=(TensorCoord const &amp;tile_offset)</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:564</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_a79ebd8c200848da932f1de7abd7adb3c"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a79ebd8c200848da932f1de7abd7adb3c">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator--</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator--()</div><div class="ttdoc">Advances the iterator along the advance dimension. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1662</div></div>
<div class="ttc" id="cutlass_8h_html_a28c2443a142676d3d71effdae1a986b1"><div class="ttname"><a href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="ttdeci">#define CUTLASS_HOST_DEVICE</div><div class="ttdef"><b>Definition:</b> cutlass.h:89</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2_html_ade5a97dd91ba6e619893ff3d9fb16abf"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#ade5a97dd91ba6e619893ff3d9fb16abf">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::add_tile_offset</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; add_tile_offset(TensorCoord const &amp;tile_offset)</div><div class="ttdoc">Advances an iterator along logical dimensions of matrix in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:997</div></div>
<div class="ttc" id="numeric__types_8h_html"><div class="ttname"><a href="numeric__types_8h.html">numeric_types.h</a></div><div class="ttdoc">Top-level include for all CUTLASS numeric types. </div></div>
<div class="ttc" id="classcutlass_1_1TensorRef_html_a4166ac2a0754574ac21d5d57d74f34e5"><div class="ttname"><a href="classcutlass_1_1TensorRef.html#a4166ac2a0754574ac21d5d57d74f34e5">cutlass::TensorRef::offset</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE LongIndex offset(TensorCoord const &amp;coord) const </div><div class="ttdoc">Computes the offset of an index from the origin of the tensor. </div><div class="ttdef"><b>Definition:</b> tensor_ref.h:301</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2_html_ad70d6d18a516d29a9a2234823ed0379e"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#ad70d6d18a516d29a9a2234823ed0379e">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator--</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator--()</div><div class="ttdoc">Advances the iterator along the advance dimension. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1015</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343_html_a055e9b2eaae127c3087bf195de8a3f5d"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a055e9b2eaae127c3087bf195de8a3f5d">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load_with_byte_offset</a></div><div class="ttdeci">CUTLASS_DEVICE void load_with_byte_offset(Fragment &amp;frag, TensorCoord const &amp;tile_offset, Index byte_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:863</div></div>
<div class="ttc" id="structcutlass_1_1platform_1_1conditional_html"><div class="ttname"><a href="structcutlass_1_1platform_1_1conditional.html">cutlass::platform::conditional</a></div><div class="ttdoc">std::conditional (true specialization) </div><div class="ttdef"><b>Definition:</b> platform.h:325</div></div>
<div class="ttc" id="platform_8h_html_adde4c9ea91b753491851361a4198c009"><div class="ttname"><a href="platform_8h.html#adde4c9ea91b753491851361a4198c009">static_assert</a></div><div class="ttdeci">#define static_assert(__e, __m)</div><div class="ttdef"><b>Definition:</b> platform.h:153</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501_html_a468ea714e860b51a6735245b7be2cae5"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a468ea714e860b51a6735245b7be2cae5">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::MmaVoltaTensorOpMultiplicandTileIterator</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator(TensorRef const &amp;ref, int lane_id)</div><div class="ttdoc">Constructor from TensorRef. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:497</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343_html_ae6152b882eb37b1e81930b0fa1bc8cab"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#ae6152b882eb37b1e81930b0fa1bc8cab">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::add_pointer_offset</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; add_pointer_offset(LongIndex offset)</div><div class="ttdoc">Adds a pointer offset to internal pointer(s) to advance through memory. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:764</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321_html_aab514462e6a1799ccdb7fffaa0d10601"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#aab514462e6a1799ccdb7fffaa0d10601">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator--</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator--()</div><div class="ttdoc">Advances the iterator along the advance dimension. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2144</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_a2fa057ddebf35f274734157ed88200d1"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a2fa057ddebf35f274734157ed88200d1">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::store</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void store(Fragment &amp;frag, TensorCoord const &amp;tile_offset) const </div><div class="ttdoc">Stores a fragment to memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1441</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_a2c060728c43544ae3986db19e789d75e"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a2c060728c43544ae3986db19e789d75e">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::InstructionShape</a></div><div class="ttdeci">InstructionShape_ InstructionShape</div><div class="ttdoc">Shape of one matrix product operation (concept: GemmShape) </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1509</div></div>
<div class="ttc" id="structcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_1_1Policy_html"><div class="ttname"><a href="structcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_1_1Policy.html">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::Policy</a></div><div class="ttdoc">Internal structure of iterator - made public to enable introspection. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1172</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72_html_ae08a89a2167a7c857fe80ea2c856a51c"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#ae08a89a2167a7c857fe80ea2c856a51c">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load_with_pointer_offset</a></div><div class="ttdeci">CUTLASS_DEVICE void load_with_pointer_offset(Fragment &amp;frag, Index pointer_offset) const </div><div class="ttdoc">Loads a fragment from memory with additional logical offset. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:321</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501_html_ae84c4afadbd34f8a95eda7dfeff28285"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#ae84c4afadbd34f8a95eda7dfeff28285">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load_with_byte_offset</a></div><div class="ttdeci">CUTLASS_DEVICE void load_with_byte_offset(Fragment &amp;frag, TensorCoord const &amp;tile_offset, Index byte_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:638</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72_html_a3d25902aecd1742c8d5bc9229dc80455"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a3d25902aecd1742c8d5bc9229dc80455">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::LongIndex</a></div><div class="ttdeci">typename TensorRef::LongIndex LongIndex</div><div class="ttdoc">Long Index type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:124</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_a5e7cdf520c47ae3eb3271e4a744c8e82"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a5e7cdf520c47ae3eb3271e4a744c8e82">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::add_tile_offset</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; add_tile_offset(TensorCoord const &amp;tile_offset)</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1632</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501_html_afd8dd07dda27b96b7ba8f4f22ba2991e"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#afd8dd07dda27b96b7ba8f4f22ba2991e">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::add_pointer_offset</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; add_pointer_offset(LongIndex offset)</div><div class="ttdoc">Adds a pointer offset to internal pointer(s) to advance through memory. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:514</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321_html_af4d4e99c869cb7fb4d982ca22146a0bc"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#af4d4e99c869cb7fb4d982ca22146a0bc">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::load</a></div><div class="ttdeci">CUTLASS_DEVICE void load(Fragment &amp;frag, TensorCoord const &amp;tile_offset, Index pointer_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2205</div></div>
<div class="ttc" id="structcutlass_1_1layout_1_1VoltaTensorOpMultiplicandCrosswise_html"><div class="ttname"><a href="structcutlass_1_1layout_1_1VoltaTensorOpMultiplicandCrosswise.html">cutlass::layout::VoltaTensorOpMultiplicandCrosswise</a></div><div class="ttdef"><b>Definition:</b> tensor_op_multiplicand_sm70.h:733</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2_html_af22432bf96baa56356a65e442ee8b3e7"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#af22432bf96baa56356a65e442ee8b3e7">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::add_pointer_offset</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; add_pointer_offset(LongIndex offset)</div><div class="ttdoc">Adds a pointer offset to internal pointer(s) to advance through memory. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:988</div></div>
<div class="ttc" id="structcutlass_1_1layout_1_1RowMajorVoltaTensorOpMultiplicandCrosswise_html"><div class="ttname"><a href="structcutlass_1_1layout_1_1RowMajorVoltaTensorOpMultiplicandCrosswise.html">cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise</a></div><div class="ttdef"><b>Definition:</b> tensor_op_multiplicand_sm70.h:943</div></div>
<div class="ttc" id="classcutlass_1_1TensorRef_html_a11ec4b07a2132e647ca2ebe5112ce5ec"><div class="ttname"><a href="classcutlass_1_1TensorRef.html#a11ec4b07a2132e647ca2ebe5112ce5ec">cutlass::TensorRef::Index</a></div><div class="ttdeci">typename Layout::Index Index</div><div class="ttdoc">Index type. </div><div class="ttdef"><b>Definition:</b> tensor_ref.h:165</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2_html_a461f3f3f5827b7144952b13e9861e4c0"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a461f3f3f5827b7144952b13e9861e4c0">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::Index</a></div><div class="ttdeci">typename TensorRef::Index Index</div><div class="ttdoc">Index type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:942</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_a2fc7c23f777567b6b738dcaf0e253298"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a2fc7c23f777567b6b738dcaf0e253298">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::Index</a></div><div class="ttdeci">typename TensorRef::Index Index</div><div class="ttdoc">Index type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1163</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_adefa4a6e04cd3e1ed22e514602d7269e"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#adefa4a6e04cd3e1ed22e514602d7269e">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::load_with_byte_offset</a></div><div class="ttdeci">CUTLASS_DEVICE void load_with_byte_offset(Fragment &amp;frag, Index byte_offset) const </div><div class="ttdoc">Loads a fragment from memory with additional logical offset. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1351</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72_html_a2869bffb6ec67d650ef03c1c89296d9c"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a2869bffb6ec67d650ef03c1c89296d9c">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load</a></div><div class="ttdeci">CUTLASS_DEVICE void load(Fragment &amp;frag, TensorCoord const &amp;tile_offset, Index pointer_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:341</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343_html_a02418de1fd12f6408e6b3e8da55b36cb"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a02418de1fd12f6408e6b3e8da55b36cb">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load</a></div><div class="ttdeci">CUTLASS_DEVICE void load(Fragment &amp;frag, TensorCoord const &amp;tile_offset, Index pointer_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:851</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501_html_a256ae965418e83d9274896065c8e9694"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a256ae965418e83d9274896065c8e9694">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void load(Fragment &amp;frag) const </div><div class="ttdoc">Loads a fragment from memory at the location pointed to by the iterator. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:571</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942_html_af99286febf2c6c64d267dfc8fab282dc"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#af99286febf2c6c64d267dfc8fab282dc">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::Fragment</a></div><div class="ttdeci">Array&lt; Element, Shape::kCount/kThreads *2 &gt; Fragment</div><div class="ttdoc">Fragment object holding a thread&amp;#39;s part of a tile. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1872</div></div>
<div class="ttc" id="classcutlass_1_1TensorRef_html_a8758907a1c9b1fcd00e7ece626d03b76"><div class="ttname"><a href="classcutlass_1_1TensorRef.html#a8758907a1c9b1fcd00e7ece626d03b76">cutlass::TensorRef::at</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE Reference at(TensorCoord const &amp;coord) const </div><div class="ttdoc">Returns a reference to the element at a given Coord. </div><div class="ttdef"><b>Definition:</b> tensor_ref.h:307</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321_html_a47cd238e52ec513ba4483b49acada849"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a47cd238e52ec513ba4483b49acada849">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::load_with_byte_offset</a></div><div class="ttdeci">CUTLASS_DEVICE void load_with_byte_offset(Fragment &amp;frag, Index byte_offset) const </div><div class="ttdoc">Loads a fragment from memory with additional logical offset. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2184</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator</a></div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1135</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501_html_ac07ec8d44816b9482b29bee13a48c862"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#ac07ec8d44816b9482b29bee13a48c862">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load_with_byte_offset</a></div><div class="ttdeci">CUTLASS_DEVICE void load_with_byte_offset(Fragment &amp;frag, Index byte_offset) const </div><div class="ttdoc">Loads a fragment from memory with additional logical offset. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:578</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_a54cea7a93a7b945f09052fb5184c0aef"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a54cea7a93a7b945f09052fb5184c0aef">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::add_pointer_offset</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; add_pointer_offset(LongIndex offset)</div><div class="ttdoc">Adds a pointer offset to internal pointer(s) to advance through memory. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1623</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_a7ae9181632f916c6966e956cf5594fef"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a7ae9181632f916c6966e956cf5594fef">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::load</a></div><div class="ttdeci">CUTLASS_DEVICE void load(Fragment &amp;frag, TensorCoord const &amp;tile_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1735</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2_html_aae213dc524ddd759d900a701912e4182"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#aae213dc524ddd759d900a701912e4182">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::Shape</a></div><div class="ttdeci">Shape_ Shape</div><div class="ttdoc">Shape of tile to load (concept: PitchLinearShape) </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:915</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942_html_aca0fce90ebb322d0d8b3b882306ae635"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#aca0fce90ebb322d0d8b3b882306ae635">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::load</a></div><div class="ttdeci">CUTLASS_DEVICE void load(Fragment &amp;frag, TensorCoord const &amp;tile_offset, Index pointer_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1977</div></div>
<div class="ttc" id="layout_2matrix_8h_html"><div class="ttname"><a href="layout_2matrix_8h.html">matrix.h</a></div><div class="ttdoc">Defines layout functions used by TensorRef and derived classes. </div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321_html_ad3629b3b4b0293d9eca05397077d8626"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#ad3629b3b4b0293d9eca05397077d8626">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::Fragment</a></div><div class="ttdeci">Array&lt; Element, Shape::kCount/kThreads *2 &gt; Fragment</div><div class="ttdoc">Fragment object holding a thread&amp;#39;s part of a tile. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2100</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_aaf14976ad1ee614c844075d685fc527b"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#aaf14976ad1ee614c844075d685fc527b">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::store_with_byte_offset</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void store_with_byte_offset(Fragment const &amp;frag, Index byte_offset) const </div><div class="ttdoc">Stores a fragment to memory with additional pointer offset. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1432</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321_html_afcccb6ac74d08706ecd58f431baa26ad"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#afcccb6ac74d08706ecd58f431baa26ad">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::Element</a></div><div class="ttdeci">Element_ Element</div><div class="ttdoc">Element type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2054</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321_html_aec92afa74fd54e54518a56a84cb85014"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#aec92afa74fd54e54518a56a84cb85014">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::MmaVoltaTensorOpMultiplicandTileIterator</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator()</div><div class="ttdoc">Default ctor constructs null iterator. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2109</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_a7fedc3e454f2ffbce639ab6477a9a4bc"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a7fedc3e454f2ffbce639ab6477a9a4bc">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::load</a></div><div class="ttdeci">CUTLASS_DEVICE void load(Fragment &amp;frag, TensorCoord const &amp;tile_offset, Index pointer_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1745</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72_html_a7372d844a53e25b82a746ea9ff8510ed"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a7372d844a53e25b82a746ea9ff8510ed">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::Shape</a></div><div class="ttdeci">Shape_ Shape</div><div class="ttdoc">Shape of tile to load (concept: PitchLinearShape) </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:97</div></div>
<div class="ttc" id="pitch__linear_8h_html"><div class="ttname"><a href="pitch__linear_8h.html">pitch_linear.h</a></div><div class="ttdoc">Defines layout functions used by TensorRef and derived classes for pitch-linear memory. </div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343_html_aa44f01f44b93015d1b5ff71490704978"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#aa44f01f44b93015d1b5ff71490704978">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void load(Fragment &amp;frag) const </div><div class="ttdoc">Loads a fragment from memory at the location pointed to by the iterator. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:814</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343_html_ac34548b686d8e76013875c7e4ee725d6"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#ac34548b686d8e76013875c7e4ee725d6">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::add_tile_offset</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; add_tile_offset(TensorCoord const &amp;tile_offset)</div><div class="ttdoc">Advances an iterator along logical dimensions of matrix in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:773</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_a9c6b5b280940abc435d27d67d89f9238"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#a9c6b5b280940abc435d27d67d89f9238">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::operator+=</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpAccumulatorTileIterator &amp; operator+=(TensorCoord const &amp;tile_offset)</div><div class="ttdoc">advances in units of whole tiles along the logical coordinate space of the tensor ...</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1285</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942_html_a483350b04218a200d8323f87fb0a8ad4"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a483350b04218a200d8323f87fb0a8ad4">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::load</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void load(Fragment &amp;frag) const </div><div class="ttdoc">Loads a fragment from memory at the location pointed to by the iterator. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1942</div></div>
<div class="ttc" id="classcutlass_1_1TensorRef_html_a6bbcd0e512915565cabfeccdb1b6417d"><div class="ttname"><a href="classcutlass_1_1TensorRef.html#a6bbcd0e512915565cabfeccdb1b6417d">cutlass::TensorRef::add_pointer_offset</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE TensorRef &amp; add_pointer_offset(LongIndex offset_)</div><div class="ttdoc">Adds an offset to each pointer. </div><div class="ttdef"><b>Definition:</b> tensor_ref.h:319</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72_html_a528adebab8aa3fa3233554782652047e"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#a528adebab8aa3fa3233554782652047e">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator+=</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator+=(TensorCoord const &amp;tile_offset)</div><div class="ttdoc">advances in units of whole tiles along the logical coordinate space of the tensor ...</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:272</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942_html_a0be745dc08b570ca7f102ce17592463c"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a0be745dc08b570ca7f102ce17592463c">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::Index</a></div><div class="ttdeci">typename TensorRef::Index Index</div><div class="ttdoc">Index type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1849</div></div>
<div class="ttc" id="structcutlass_1_1layout_1_1ColumnMajorVoltaTensorOpMultiplicandCongruous_html"><div class="ttname"><a href="structcutlass_1_1layout_1_1ColumnMajorVoltaTensorOpMultiplicandCongruous.html">cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous</a></div><div class="ttdoc">Template mapping a column-major view of pitch-linear memory to VoltaTensorOpMultiplicandCongruous. </div><div class="ttdef"><b>Definition:</b> tensor_op_multiplicand_sm70.h:191</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942_html_af6e8687cd4567e0d4e62601a049eadc3"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#af6e8687cd4567e0d4e62601a049eadc3">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::load_with_byte_offset</a></div><div class="ttdeci">CUTLASS_DEVICE void load_with_byte_offset(Fragment &amp;frag, TensorCoord const &amp;tile_offset, Index byte_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1990</div></div>
<div class="ttc" id="tensor__op__multiplicand__sm70_8h_html"><div class="ttname"><a href="tensor__op__multiplicand__sm70_8h.html">tensor_op_multiplicand_sm70.h</a></div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942_html_ad30f89112afa148f8827e4e4ee58d7d1"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ad30f89112afa148f8827e4e4ee58d7d1">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::load_with_pointer_offset</a></div><div class="ttdeci">CUTLASS_DEVICE void load_with_pointer_offset(Fragment &amp;frag, Index pointer_offset) const </div><div class="ttdoc">Loads a fragment from memory with additional logical offset. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1946</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501_html_a9b2af949163bc2476ff06941cf9b9beb"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a9b2af949163bc2476ff06941cf9b9beb">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::set_kgroup_index</a></div><div class="ttdeci">CUTLASS_DEVICE void set_kgroup_index(int k_group)</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:663</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321_html_ac86a65d3aec0b83fc689c14e3fb7e647"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#ac86a65d3aec0b83fc689c14e3fb7e647">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::MmaVoltaTensorOpMultiplicandTileIterator</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator(TensorRef const &amp;ref, int lane_id)</div><div class="ttdoc">Constructor from TensorRef. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2113</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321_html_a928503563ad00903fcd72146baa25bcc"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a928503563ad00903fcd72146baa25bcc">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::set_kgroup_index</a></div><div class="ttdeci">CUTLASS_DEVICE void set_kgroup_index(int k_group)</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2237</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72_html_aa1e94b945acaaea52c9bbf29bfbed63e"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#aa1e94b945acaaea52c9bbf29bfbed63e">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::Element</a></div><div class="ttdeci">Element_ Element</div><div class="ttdoc">Element type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:103</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501_html_ab3049e27aa39203d23e891527e7ae36d"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#ab3049e27aa39203d23e891527e7ae36d">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator+=</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator+=(TensorCoord const &amp;tile_offset)</div><div class="ttdoc">advances in units of whole tiles along the logical coordinate space of the tensor ...</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:557</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2_html_a45012fadebb81b49bba98949ea228a0b"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a45012fadebb81b49bba98949ea228a0b">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::InstructionShape</a></div><div class="ttdeci">InstructionShape_ InstructionShape</div><div class="ttdoc">Shape of one matrix product operation (concept: MatrixShape) </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:930</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321_html_a0d18d3d63940b906fdd1ab48c4b2799a"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a0d18d3d63940b906fdd1ab48c4b2799a">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator++</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator++()</div><div class="ttdoc">Advances the iterator along the advance dimension. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2136</div></div>
<div class="ttc" id="namespacecutlass_1_1gemm_html_a34338284023da7403c9ecbd3f406b2a6a3e56c011b37f0bc78fb9eb175c1181c6"><div class="ttname"><a href="namespacecutlass_1_1gemm.html#a34338284023da7403c9ecbd3f406b2a6a3e56c011b37f0bc78fb9eb175c1181c6">cutlass::gemm::Operand::kB</a></div><div class="ttdoc">A multiplicand. </div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_a75ea2d47c7a8fbec0a359736777b4a46"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a75ea2d47c7a8fbec0a359736777b4a46">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator++</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator++()</div><div class="ttdoc">Advances the iterator along the advance dimension. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1649</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2_html_a2c8a1e5f9ac32145eebd63a33fa97864"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operand734577b7e54a074d143aba59828c2f2.html#a2c8a1e5f9ac32145eebd63a33fa97864">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::load</a></div><div class="ttdeci">CUTLASS_DEVICE void load(Fragment &amp;frag, TensorCoord const &amp;tile_offset, Index pointer_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1075</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator_html_afaee932bcd7c0e32352e4857903debcb"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpAccumulatorTileIterator.html#afaee932bcd7c0e32352e4857903debcb">cutlass::gemm::warp::MmaVoltaTensorOpAccumulatorTileIterator::Layout</a></div><div class="ttdeci">Layout_ Layout</div><div class="ttdoc">Layout of source tile. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1148</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942_html_ab1c2a3d187a87f69f218be46c0d91e48"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#ab1c2a3d187a87f69f218be46c0d91e48">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator--</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator--()</div><div class="ttdoc">Advances the iterator along the advance dimension. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1916</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321_html_ac1e657b6f0e2e671d2c5c2d66a95e904"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#ac1e657b6f0e2e671d2c5c2d66a95e904">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator+=</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator+=(TensorCoord const &amp;tile_offset)</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2153</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_af867768e97efa7f00ab05a776de6d6d3"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#af867768e97efa7f00ab05a776de6d6d3">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::TensorRef</a></div><div class="ttdeci">TensorRef&lt; Element, Layout &gt; TensorRef</div><div class="ttdoc">TensorRef type for loading element from a tensor. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1519</div></div>
<div class="ttc" id="structcutlass_1_1layout_1_1VoltaTensorOpMultiplicandCongruous_html"><div class="ttname"><a href="structcutlass_1_1layout_1_1VoltaTensorOpMultiplicandCongruous.html">cutlass::layout::VoltaTensorOpMultiplicandCongruous</a></div><div class="ttdoc">Template based on element size (in bits) - defined in terms of pitch-linear memory. </div><div class="ttdef"><b>Definition:</b> tensor_op_multiplicand_sm70.h:60</div></div>
<div class="ttc" id="cutlass_8h_html"><div class="ttname"><a href="cutlass_8h.html">cutlass.h</a></div><div class="ttdoc">Basic include for CUTLASS. </div></div>
<div class="ttc" id="structcutlass_1_1MatrixCoord_html"><div class="ttname"><a href="structcutlass_1_1MatrixCoord.html">cutlass::MatrixCoord</a></div><div class="ttdef"><b>Definition:</b> matrix_coord.h:39</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343_html_a5f51fbbcfc8e78843f99bad748fbe74f"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a5f51fbbcfc8e78843f99bad748fbe74f">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::TensorCoord</a></div><div class="ttdeci">typename TensorRef::TensorCoord TensorCoord</div><div class="ttdoc">Coordinate for an element in the tensor. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:724</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942_html_a670d4132ca27fcd64f3d7e9eef192b7c"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan5a221944f4a0e16ccab77ba684856942.html#a670d4132ca27fcd64f3d7e9eef192b7c">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::operator++</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; operator++()</div><div class="ttdoc">Advances the iterator along the advance dimension. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1908</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343_html_ad5070e7b4a207fbc27c2daec3acd5a1f"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#ad5070e7b4a207fbc27c2daec3acd5a1f">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::LongIndex</a></div><div class="ttdeci">typename TensorRef::LongIndex LongIndex</div><div class="ttdoc">Long Index type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:721</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343_html_a2732ede202de8d1b785cd471df35d2c3"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan0d3248553e52cd61ed8a2b3b12a20343.html#a2732ede202de8d1b785cd471df35d2c3">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::ColumnMajorVoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::Element</a></div><div class="ttdeci">Element_ Element</div><div class="ttdoc">Element type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:700</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321_html_a1c8d4172863530df51eb04577a7d1dec"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a1c8d4172863530df51eb04577a7d1dec">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::load_with_byte_offset</a></div><div class="ttdeci">CUTLASS_DEVICE void load_with_byte_offset(Fragment &amp;frag, TensorCoord const &amp;tile_offset, Index byte_offset) const </div><div class="ttdoc">Loads a fragment from memory with logical offset in units of whole tiles. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2218</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321_html_a22dddf2c5e488e700baed2ee7c389b45"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a22dddf2c5e488e700baed2ee7c389b45">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::add_tile_offset</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator &amp; add_tile_offset(TensorCoord const &amp;tile_offset)</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2127</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501_html_a0b90c3a82687e4312e9c569fa4e99c0e"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#a0b90c3a82687e4312e9c569fa4e99c0e">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::MmaVoltaTensorOpMultiplicandTileIterator</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE MmaVoltaTensorOpMultiplicandTileIterator()</div><div class="ttdoc">Default ctor constructs null iterator. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:493</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72_html_add5d0fd0276c0770b7e5d9466ed8d71a"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#add5d0fd0276c0770b7e5d9466ed8d71a">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::set_kgroup_index</a></div><div class="ttdeci">CUTLASS_DEVICE void set_kgroup_index(int k_group)</div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:378</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501_html_aac53debde1f27fd38bb9830ea44309ad"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan16c56cdc2dda5eeb996af8ec0242d501.html#aac53debde1f27fd38bb9830ea44309ad">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kB, Element_, cutlass::layout::VoltaTensorOpMultiplicandBCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::Index</a></div><div class="ttdeci">typename TensorRef::Index Index</div><div class="ttdoc">Index type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:433</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72_html_abc3ae2fe83b096488e798d37327ff3c9"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operan34be8e21a40af3ebd2dc3dff460dca72.html#abc3ae2fe83b096488e798d37327ff3c9">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand::kA, Element_, cutlass::layout::VoltaTensorOpMultiplicandCongruous&lt; sizeof_bits&lt; Element_ &gt;::value &gt;, InstructionShape_, OpDelta_, 32 &gt;::InstructionShape</a></div><div class="ttdeci">InstructionShape_ InstructionShape</div><div class="ttdoc">Shape of one matrix product operation (concept: GemmShape) </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:109</div></div>
<div class="ttc" id="classcutlass_1_1TensorRef_html_adeada5e33b231f125a4aaeaf963bd3a3"><div class="ttname"><a href="classcutlass_1_1TensorRef.html#adeada5e33b231f125a4aaeaf963bd3a3">cutlass::TensorRef::LongIndex</a></div><div class="ttdeci">typename Layout::LongIndex LongIndex</div><div class="ttdoc">Long index used for pointer offsets. </div><div class="ttdef"><b>Definition:</b> tensor_ref.h:168</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_ac1ee4a04df22d2d24d1a4eaf2e8cca89"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#ac1ee4a04df22d2d24d1a4eaf2e8cca89">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::MmaVoltaTensorOpMultiplicandTileIterator</a></div><div class="ttdeci">CUTLASS_DEVICE MmaVoltaTensorOpMultiplicandTileIterator(TensorRef const &amp;ref, int lane_id)</div><div class="ttdoc">Constructor from TensorRef. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1593</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52_html_a89a7b481a74de5bc5fa29ee1d1925d27"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operana2f40b28f0d2286b84d86f7238d67b52.html#a89a7b481a74de5bc5fa29ee1d1925d27">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::VoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::LongIndex</a></div><div class="ttdeci">typename TensorRef::LongIndex LongIndex</div><div class="ttdoc">Long Index type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:1525</div></div>
<div class="ttc" id="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321_html_a2f7d43791644b737de765245eb3d60ef"><div class="ttname"><a href="classcutlass_1_1gemm_1_1warp_1_1MmaVoltaTensorOpMultiplicandTileIterator_3_01Shape___00_01Operandcc9821c435540895138bc9af495f321.html#a2f7d43791644b737de765245eb3d60ef">cutlass::gemm::warp::MmaVoltaTensorOpMultiplicandTileIterator&lt; Shape_, Operand_, Element_, cutlass::layout::RowMajorVoltaTensorOpMultiplicandCrosswise&lt; sizeof_bits&lt; Element_ &gt;::value, KBlock &gt;, InstructionShape_, OpDelta_, 32 &gt;::LongIndex</a></div><div class="ttdeci">typename TensorRef::LongIndex LongIndex</div><div class="ttdoc">Long Index type. </div><div class="ttdef"><b>Definition:</b> mma_tensor_op_tile_iterator_sm70.h:2080</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>
